Docker 시작

2923 단어 Docker
신입사원을 위한 Docker 입문 학습회를 열었기 때문에 비망록 공유도 겸했다

Docker 소개

  • 오픈 소스 소프트웨어(by Wikipedia)
  • 호스트 OS의 커널을 활용하여 컨테이너라고 불리는 가상 영역을 구축하고 해당 영역에서 애플리케이션을 이동
  • 기존 가상화 환경(VMWare, VirtualBox)에 비해 가볍고 빠른 동작
  • Linux 커널을 사용하기 위해 기본적으로 Linux 환경 구축에 사용
  • 기존 가상화 환경과 차별화


    그렇다면 Docker는 왜 기존의 가상화 환경보다 가볍고 빠른가?
    가장 큰 차이점은 고객 OS가 필요하지 않다는 것입니다.

    기존 VirtualBox 및 VMWare에서는 어플리케이션을 실행하기 위해 먼저 고객 OS를 시작해야 합니다.
    Docker는 호스트 OS의 커널을 공유하기 때문에 비용이 적고 가볍고 고속으로 동작할 수 있다.

    실천하다


    먼저 센토스 7의 Docker를 만들어 Hello World를 시도해보자.
    # Docker HubよりDockerイメージを取得する。ここではCentOS7のイメージを取得
    $ docker pull centos:7
    # 取得したCentOS7のイメージを利用して、コンテナを作成・起動し、「echo 'Hello, World'」を実行する
    $ docker run centos:7 /bin/echo 'Hello, World!'
    Hello, World!
    

    용어 설명


    Docker 이미지


    용기(실제 가상 환경)의 모형.OS 및 어플리케이션이 포함된 템플릿입니다.
    이 그림을 바탕으로 용기를 만든다.

    Docker Hub


    공식 Docker 레지스트리입니다.
    정식 Docker 이미지나 자신이 만든 Docker 이미지를 공개할 수 있습니다.
    센트럴OS와 우분투는 물론 nginx와 각종 DB 등이 기본적으로 공식 이미지를 공개해 이를 활용하면 수월할 것으로 보인다.

    Dockerfile


    실제 Docker Hub에 공개된 이미지만으로는 애플리케이션을 시작하기 어렵습니다.이 경우 Docker file을 기반으로 원본 이미지를 만들 수 있습니다.
    환경을 만드는 명령의 이미지를 나열합니다.
    Docker Hub이 공개된 이미지는 대체로 Docker file도 공개됐다.
    예를 들면nginx의 이미지를 스스로 만들어 보세요.
    Dockerfile
    # ベースとなるイメージを指定(docker pullと同じことをしてくれる)
    FROM ubuntu:16.04
    
    # nginxインストール
    RUN apt-get update && \
        apt-get install -y nginx && \
        apt-get clean && \
        rm -rf /var/lib/apt/lists/*
    
    # 必要なファイルをコンテナ側にコピーする
    COPY ./sample/index.html /var/www/html/index.html
    COPY ./config/nginx.conf /etc/nginx/conf.d/default.conf
    
    # 80番ポートを開放
    EXPOSE 80
    
    # 起動時に実行されるコマンド
    # nginxはデフォルトだとバックグラウンドで実行されるため、フォアグラウンドで実行するよう指定
    CMD ["nginx", "-g", "daemon off;"]
    

    주의점

  • Docker는 기본적으로 하나의 용기를 전제로 한다.
  • 사전 과정이 없으면 Docker는 자연히 끝난다.이에 따라 nginx와 DB 등 평소 백스테이지에서 가동하던 것들도 그라운드에서 가동해야 한다.
  • 좋은 웹페이지 즐겨찾기