ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker Machine
    Container 2016. 3. 11. 09:00
    반응형
    도커 머신(Docker Machine)은 사용자의 로컬 컴퓨터, 클라우드 서비스가 제공하는 인스턴스, 원격 서버에 도커 호스트를 구성해 준다. 도커 머신을 이용하면 자동으로 도커를 설치하고 도커 호스트를 만들수 있고, docker 클라이언트를 사용해서 설정한 서버의 도커 호스트에 도커 명령을 실행할 수 있다.
     
    도커 머신 설치
    도커 머신(Docker Machine)은 윈도우나 맥 OS X의 경우에는 도커 툴박스를 설치하면 설치된다. 리눅스의 경우에는 직접 바이너리를 받아서 설치할 수 있다. 아래처럼 명령어 한줄이면 설치가 끝난다.
     
    unzip machine.zip && \
    rm machine.zip && \
    mv docker-machine* /usr/local/bin

     
    설치가 제대로 됐는지 확인하려면 docker-machine –v 명령을 실행해서 현재 도커 머신의 버전을 확인할 있다.
     
    도커 머신을 사용해서 로컬 컴퓨터의 vm 도커 호스트를 구성해보자. 도커머신에서 많이 사용하는 VM 무료인 버추얼박스다. 그러니 버추얼박스가 설치되어 있어야 한다. 도커툴박스를 이용해 설치했다면 같이 설치된다.
     
    우선 현재 도커머신을 이용해서 실행중인 vm 있는지 확인해 보자. 다음처럼 ls 명령으로 확인할 있다.
    docker-machine ls

     
    아직 vm 없는걸 확인할 있다. 이제 vm 만들어 보자.
    docker-machine create --driver virtualbox dev

    드라이버로 버추얼박스를 이용해서 이름이 dev VM 만들게 된다. 다시 docker-machine ls 하면 VM 만들어 진걸 확인할 있다.

     
    VM 도커 클라이언트로 명령을 하기 위해서는 환경설정이 필요하다. 다음 명령으로 필요한 설정을 확인할 있다.
    docker-machine env dev

    결과에 보이는 것처럼 필요한 환경변수들을 export해주면 docker 명령을 이용해서 VM 사용할 있다. Export 여러개여서 번거로울 때는 화면에 있는 주석처럼

    eval "$(docker-machine env dev)"

    명령으로 한번에 설정할 수도 있다.
     
    이제 docker 명령으로 컨테이너 이미지가 제대로 실행되는지 확인해 보자.
    docker run -ti --rm -p 80:80 nginx
     
    컨테이너는 80포트로 nginx 띄우는데 nginx 떴는지 확인하려면 vm으로 접근해야 한다. 그러기위해서 Vm ip 확인하려면 다음처럼 ip 명령으로 확인할 있다.
    docker-machine ip dev

     
    여기서는 192.168.99.100이라고 확인할 있다. 이제 IP 웹브라우저에서     접근해 보면 nginx시작화면을 확인할 있다.
    실행중인 vm 멈추거나 시작하려면 다음 명령을 사용하면 된다.
    vm 정지 :  docker-machine stop dev
    vm 시작 : docker-machine start dev
     
    도커는 로컬컴퓨터의 vm 말고도 다양한 클라우드 서비스, 설치형 VM등을 사용할 있는데 드라이버형태로 지원하고 있다. 사용가능한 목록은 https://docs.docker.com/machine/drivers/에서 확인할 있다. 지원중인 드라이버 목록은 다음과 같다.
     
    Amazon Web Services
    Microsoft Azure
    Digital Ocean
    Exoscale
    Google Compute Engine
    Generic
    Microsoft Hyper-V
    OpenStack
    Rackspace
    IBM Softlayer
    Oracle VirtualBox
    VMware vCloud Air
    VMware Fusion
    VMware vSphere
     
    드라이버별로 사용가능한 옵션이 차이가 있는데 docker-machine create –d virtualbox --help 이런 방식으로 create 명령에서 사용할 드라이버를 선택한 다음에 --help 옵션을 사용하면 해당 드라이버에서 사용가능한 옵션들을 확인할 있다.
     
    docker-machine create으로 도커에 몇가지 옵션들을 설정할 있다. docker-machine create –h 명령으로 사용가능한 옵션들을 확인할 있는데 이중에서 --engine 으로 시작되는 옵션들은 vm 생성할때 설치되는 도커를 설정하는 것들이다. --swarm으로 시작되는 옵션들도 있는데 이건 도커 스웜(Docker Swarm)에서 사용하는 옵션들이다.
     
    옵션별 내용은 아래와 같다.
    --engine-install-url https://get.docker.com 도커 엔진을 설치하는데 사용하는데 필요한 파일을 받아올URL
    --engine-opt [--engine-opt option --engine-opt option]     생성된 엔진에 설정할 데몬 옵션. flag=value 형식으로 설정한다.
    --engine-insecure-registry [--engine-insecure-registry option --engine-insecure-registry option]       생성된 엔진에서 접근가능한 안전하지 않은 도커 이미지 저장소.
    --engine-registry-mirror [--engine-registry-mirror option --engine-registry-mirror option]  저장소 미러사이트
    --engine-label [--engine-label option --engine-label option]          생성된 엔진에 사용할 레이블
    --engine-storage-driver 엔진에서 사용할 스토리지 드라이버. 기본값은 aufs이다.
    --engine-env [--engine-env option --engine-env option]    엔진의 환경변수
     
     
    --swarm 스웜을 이용해서 도커머신을 설정한다.
    --swarm-image "swarm:latest"  스웜에서 사용할 도커 이미지를 지정한다.
    --swarm-master 머신에 스웜 마스터를 설정한다.
    --swarm-discovery 스웜에서 사용할 디스커버리(Discovery) 서비스.
    --swarm-strategy "spread" 스웤에서 사용할 스켜줄링 정책을 설정한다.
    --swarm-opt [--swarm-opt option --swarm-opt option]    swarm manage 명령에서 사용할 옵션을 정의한다.
    --swarm-host "tcp://0.0.0.0:3376"           스웜 마스터용으로 사용할 IP 포트를 지정한다.
    --swarm-addr 스웜에서 사용할 주소. 기본값은 머신의 IP 사용한다.                                                                                                                                            addr to advertise for Swarm (default: detect and use the machine IP)
     
     
    참고자료
     
    반응형

    'Container' 카테고리의 다른 글

    Docker Swarm  (0) 2016.03.16
    Docker Registry  (0) 2016.03.14
    Docker Kitematic  (0) 2016.03.09
    Docker Compose  (0) 2016.03.07
    Docker 이미지(Dockerfile)  (2) 2016.03.04

    댓글

Designed by Tistory.