backend/docker

docker-machine 소개, 설치 및 기본 사용법

seul chan 2017. 12. 23. 23:15

Docker Machine

docker machine은 일종의 vm같이 도커를 mac, window 등 다른 (오래된) 환경에서도 동일하게 띄울 수 있게 도와준다.

Install docker machine

여기(도커머신 홈페이지)에서 설치 방법을 참고해서 설치 가능하다.

1. (당연한 얘기겠지만) Docker를 설치해준다.

2. 자신의 OS에 맞게 docker machine binary를 PATH에 설치해준다.

macOS의 경우

$ curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && \
  chmod +x /usr/local/bin/docker-machine

Linux의 경우

$ curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
chmod +x /tmp/docker-machine &&
sudo cp /tmp/docker-machine /usr/local/bin/docker-machine

Windows의 경우(Git BASH를 사용할 경우)

$ if [[ ! -d "$HOME/bin" ]]; then mkdir -p "$HOME/bin"; fi && \
curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" && \
chmod +x "$HOME/bin/docker-machine.exe"

Basic commands

docker-machine ls로 현재 docker-machine을 볼 수 있다.

$docker-machine --help

$docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   -        virtualbox   Saved                                         Unknown
dev       -        virtualbox   Stopped                                       Unknown

docker-machine 만들기

docker-machine create <machine_name>로 만들면 된다.

# 3개의 machine을 만듦
$docker-machine create node1
$docker-machine create node2
$docker-machine create node3

# docker-machine을 살펴보면 모두 unactivate 되어있음
$docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   -        virtualbox   Saved                                         Unknown
dev       -        virtualbox   Stopped                                       Unknown
node1     -        virtualbox   Running   tcp://192.168.99.100:2376           v17.09.1-ce
node2     -        virtualbox   Running   tcp://192.168.99.101:2376           v17.09.1-ce
node3     -        virtualbox   Running   tcp://192.168.99.102:2376           v17.09.1-ce

docker-machine 활성화시키기

docker-machine을 활성화 시키려면 env에 4가지 종류의 DOCKER 변수를 설정해주면 된다. 아래의 4가지를 명령어를 통해 변수를 설정해 주면 되는데, 매우 귀찮은 작업이기 때문에 docker-machine에서 쉬운 명령어를 제공해준다.

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.101:2376"
export DOCKER_CERT_PATH="/Users/seulchankim/.docker/machine/machines/node2"
export DOCKER_MACHINE_NAME="node2"

다음 명령어로 해당 docker-machine을 activate 할 수 있다. docker-machine env <machine_name> 명령어를 실행시키면 해당 명령어와 사용 방법이 나온다.

$docker-machine env node1
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/seulchankim/.docker/machine/machines/node1"
export DOCKER_MACHINE_NAME="node1"
# Run this command to configure your shell:
# eval $(docker-machine env node1)

이후 위에 나온 설명대로 command를 쳐주면 된다.

$eval $(docker-machine env node1)

다시 docker-machine ls를 해보면 해당 node가 activate 되어 있는 것을 볼 수 있따.

$docker-machine ls

NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   -        virtualbox   Saved                                         Unknown
dev       -        virtualbox   Stopped                                       Unknown
node1     *        virtualbox   Running   tcp://192.168.99.100:2376           v17.09.1-ce
node2     -        virtualbox   Running   tcp://192.168.99.101:2376           v17.09.1-ce
node3     -        virtualbox   Running   tcp://192.168.99.102:2376           v17.09.1-ce

docker-machine ip <machine_name>으로 해당 machine의 ip를 확인할 수 있다.

$docker-machine ip node1
192.168.99.100

start/stop 명령어로 해당 machine을 키고 끌 수 있다.

$docker-machine stop

$docker-machine start