docker container run ... -v testvolume:/var/lib/mysql
docker container run ... -v /testdir:/var/www/html
호스트의 볼륨을 사용 할 경우
최종적으로 로컬 볼륨은 좋은 선택이 아니다. 외부에 있는 스토리지를 사용해야 한다.
서비스 생성 시 볼륨 생성을 동시에 진행할 수 있다. 단, 기존 컨테이너에서 -v 옵션을 이용하는 방법의 경우 volume, nfs 구분이 어려울 수 있으므로 서비스에서는 이를 명확히 구분해야 한다.
type=volume → 볼륨 사용
type=bind → NFS 사용
rapa@manager:~$ docker service create --name testvol1 --mount type=volume,source=vol1,target=/root --replicas 1 --constraint node.role==manager nginx
rapa@manager:~$ docker container exec d1475ecaa2c4 df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda5 20G 14G 4.1G 78% /root
...
/dev/sda5 - /root
vol1 스토리지와 연결됨
rapa@manager:~$ mkdir testvol3
rapa@manager:~$ docker service create --name testvol3 --mount type=bind,source=/home/rapa/testvol3,target=/root --replicas 1 --constraint node.role==manager nginx
type을 bind로 하고(디렉토리-디렉토리 연결), source는 host의 home/rapa/testvol3를 컨테이너의 /root와 연결시킨다는 뜻
rapa@manager:~$ touch testvol3/test_from_host.txt
rapa@manager:~$ docker container ls | grep testvol3
952e37cf1c38 nginx:latest "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 80/tcp testvol3.1.p0tgiszhhwqcm31j3s2k42n1c
rapa@manager:~$ docker exec 952e37cf1c38 ls /root
test_from_host.txt