-
Docker MachineContainer 2016. 3. 11. 09:00도커 머신(Docker Machine)은 사용자의 로컬 컴퓨터, 클라우드 서비스가 제공하는 인스턴스, 원격 서버에 도커 호스트를 구성해 준다. 도커 머신을 이용하면 자동으로 도커를 설치하고 도커 호스트를 만들수 있고, docker 클라이언트를 사용해서 설정한 서버의 도커 호스트에 도커 명령을 실행할 수 있다.도커 머신 설치도커 머신(Docker Machine)은 윈도우나 맥 OS X의 경우에는 도커 툴박스를 설치하면 설치된다. 리눅스의 경우에는 직접 바이너리를 받아서 설치할 수 있다. 아래처럼 명령어 한줄이면 설치가 끝난다.curl -L https://github.com/docker/machine/releases/download/v0.5.0/docker-machine_linux-amd64.zip >machine.zip && \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 devvm 시작 : docker-machine start dev도커는 로컬컴퓨터의 vm 말고도 다양한 클라우드 서비스, 설치형 VM등을 사용할 수 있는데 드라이버형태로 지원하고 있다. 사용가능한 목록은 https://docs.docker.com/machine/drivers/에서 확인할 수 있다. 지원중인 드라이버 목록은 다음과 같다.Amazon Web ServicesMicrosoft AzureDigital OceanExoscaleGoogle Compute EngineGenericMicrosoft Hyper-VOpenStackRackspaceIBM SoftlayerOracle VirtualBoxVMware vCloud AirVMware FusionVMware vSphere각 드라이버별로 사용가능한 옵션이 차이가 있는데 docker-machine create –d virtualbox --help 이런 방식으로 create 명령에서 사용할 드라이버를 선택한 다음에 --help 옵션을 사용하면 해당 드라이버에서 사용가능한 옵션들을 확인할 수 있다.docker-machine create으로 도커에 몇가지 옵션들을 설정할 수 있다. docker-machine create –h 명령으로 사용가능한 옵션들을 확인할 수 있는데 이중에서 --engine 으로 시작되는 옵션들은 vm을 생성할때 설치되는 도커를 설정하는 것들이다. --swarm으로 시작되는 옵션들도 있는데 이건 도커 스웜(Docker Swarm)에서 사용하는 옵션들이다.각 옵션별 내용은 아래와 같다.--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 댓글