Docker 입문 로컬 환경과 클라우드 환경을 만들어 보자 (2/4)

6297 단어 dockerfile도커
제2회째가 됩니다.

이번에는 Docker에 익숙해지는 것이 목표입니다.
Docker다운 사용법은 아니지만, 우선 사용하는 것이 목적입니다.

관련 기사



Docker 입문 로컬 환경과 클라우드 환경을 만들어 보자 (1/4)

[Docker 입문 로컬 환경과 클라우드 환경을 만들어 보자(3/4)]
【중급】 프로덕션 환경을 의식한 역할로 세분화해 보았다

[Docker 입문 로컬 환경과 클라우드 환경을 만들어 보자(4/4)]
【상급】컨테이너 오케스트레이션을 의식해 만들어 보았다

【초급】VM처럼 사용해 보았다



Docker의 동작으로서 다음의 구성은 알고 있어 손해는 없습니다.
"Docker for Mac/Windows"는 한 번에 클라이언트와 서버를 설치합니다.

Docker를 구성하는 구성 요소



Docker のアーキテクチャ
인용 : htp : // cs. 도 c r. jp/엔기네/도 c케 r-오ゔぇrゔぃ에w. HTML
  • Docker 클라이언트
  • 명령을 데몬으로 보냅니다

  • Docker 데몬(서버)
  • 컨테이너를 작동시킵니다

  • Docker 레지스트리
  • 이미지 저장 <-자세히 알아보기


  • 레지스트리의 Docker 이미지 정보



    Docker 이미지는 읽기 전용 템플릿으로 이를 사용하여 Docker 컨테이너를 시작합니다.
    Docker 이미지는 레이어의 스택으로 구성됩니다.
    레이어 구성에 대해서는 자세하게 설명해 주는 기사가 있으므로, 그쪽을 읽는 편이 좋습니다.

    이미지는 기본 이미지(예: Ubuntu, CentOS)에서 생성됩니다.
    한층 더 구축할 수 있도록(듯이) 하기 위해, 「명령」이라고 부르는 구축 수단을 간단하게 기술한 모임이 있습니다.

    명령은 다음과 같은 동작을 합니다.
  • 명령 실행
  • 파일 및 디렉토리 추가
  • 환경 변수 만들기
  • 대상 이미지를 사용하여 컨테이너를 시작할 때 어떤 프로세스를 실행할지

  • 이 명령어를 Dockerfile이라는 파일에 저장합니다.
    Docker는 이 Dockerfile을 읽고 명령을 실행하며 최종 이미지를 만듭니다.

    Dockerfile 정보



    설명하는 간단한 텍스트 형식의 파일입니다.

    (예) Web+DB 서버의 Dockerfile



    Dockerfile
    # ベース・イメージを決める
    FROM centos:6.9
    
    # 必要なパッケージをインストール
    RUN yum install -y httpd httpd-devel mysql mysql-server php php-pdo php-mysql
    
    # インデックス
    RUN echo '<?php phpinfo() ?>' > /var/www/html/index.php
    
    EXPOSE 80 3306
    CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
    

    이미지에서 컨테이너 생성 ... 그리고 시작까지



    Dockerfile을 만든 후 Docker 클라이언트에서 Docker 명령을 사용하여 이미지를 만듭니다.
    그런 다음 생성된 이미지에서 컨테이너를 생성하고 시작합니다.



    명령 목록



    컨테이너 생성


    使い方: docker build [ -t {イメージ名} [ :{タグ名} ] ] {Dockerfileのあるディレクトリ}
    
    $ docker build -t acron/web:1.0 .
    

    컨테이너 시작


    使い方: docker run -p {開放ポート:アクセスポート} --name {コンテナ名} {イメージ名}:{タグ名}
    
    $ docker run -p 80:80 --name web1 acron/web:1.0
    
    すでにrunで起動している場合は以下のコマンドになります。
    $ docker start web1
    

    컨테이너에 로그인


    使い方: docker exec -it {コンテナ名} {起動シェル}
    
    $ docker exec -it web1 /bin/bash
    

    로컬 PC 마운트



    옵션 「-v」를 이용합니다.
    使い方: docker run -v {ホスト側ディレクトリ}:{コンテナ側ディレクトリ} -it --name {コンテナ名} {イメージ名}:{タグ名}
    
    $ docker run -v ./app -it --name web1 acron/web:1.0
    

    컨테이너 정지


    使い方: docker stop {コンテナID または イメージ名}
    
    $ docker stop web1
    

    웹 컨테이너를 Docker로 시작



    기동 쉘등을 작성하면 복수 프로세스를 시작할 수 있습니다만, 이번은 컨테이너에 로그인해 기동하고 있습니다.
    1. イメージの作成
    $ docker build -t acron/web:1.0 .
    
    2. コンテナ起動
    $ docker run -p 80:80 --name web1 acron/web:1.0
     Webページが生成されます。
     ブラウザで「http:localhost」にアクセス
    
    3. コンテナにログイン
    $ docker exec -it web1 /bin/bash
    
    4. DBインスタンスを起動
    $ service mysqld start
    

    요약



    Docker 같은 사용법은 아니었습니다만, Ansble등으로 작성하고 있던 내용이 Dockerfile에 정리해, Docker명령을 이용해 컨테이너라고 하는 형태로 생성할 수 있었다고 생각합니다.
    이미지라고 하는 개념 덕분에, 생성·삭제가 용이하게 되어 있었다고 생각합니다.

    다음에는 좀 더 컨테이너답게 이미지를 만들어서 시작해 갑니다.

    참고로 한 자세한 자료



    자세한 사용법이나, Docker의 구조 등이, 매우 알기 쉽게 설명되고 있습니다.

    Docker 입문: 컨테이너형 가상화 기술의 작동 방식과 사용법
    htps //w w. s에서 멋지다. 네 t/유이치 110/도 c케 r인 t로즈 c치온-42455180

    Dockerfile을 작성하기위한 모범 사례 설명 편
    htps //w w. s에서 멋지다. 네 t / 꼭 m 부츠 / 에 xp ぁ ニ ン ー ー ー ー ー ー ー ぁ

    좋은 웹페이지 즐겨찾기