Infra & Devops/Docker

[Docker] bind mount, volume, tmpfs 적용하기

겸둥이xz 2021. 9. 17. 19:34
반응형

Bind Mount

docker run --volume [호스트경로]:[컨테이너 내 경로]
  • 옵션
    • Z : SELinux 문제 해결
    • ro : 볼륨을 읽기 전용으로 마운트

 

호스트 OS ~/bindmount 를 컨테이너 /tmp/bindmount 로 마운트

[user@harbor ~]$ mkdir bindmount
[user@harbor ~]$ touch bindmount/hello.txt

docker run -dit --name bind-mount-test \
--rm \
--volume ~/bindmount:/tmp/bindmount \
centos:latest

 

read-only

docker run -dit --name read-only-test \
--rm \
--volume ~/bindmount:/tmp/bindmount:ro \
centos:latest

 

Volume

docker volume create 볼륨명
  • 실제 생성된 볼륨은 호스트의 /var/lib/docker/volumes 내부에 생성됨
  • docker volume ls : 볼륨 리스트 보기

 

마운트 포인트 확인하기

 

컨테이너에 볼륨 지정하기

docker run --rm -dit --name volume-test --volume test-vol:/tmp/test-vol centos:latest #볼륨 마운트
docker exec volume-test ls -l /tmp/test-vol # 볼륨 확인
docker exec volume-test touch /tmp/test-vol/hello.txt # 파일 생성

docker exec volume-test ls -l /tmp/test-vol
total 0
-rw-r--r--. 1 root root 0 Sep 15 05:39 hello.txt

  • 호스트에서 확인이 가능하다!!

 

Tmpfs Mount

# --mount
docker run -dit \
  --rm \
  --name tmptest \
  --mount type=tmpfs,destination=/app \
  nginx:latest
  
 # --tmpfs
 docker run -dit \
  --rm \
  --name tmptest \
  --tmpfs /app \
  nginx:latest
  • --tmpfs 를 사용하면 구성 가능한 옵션을 지정할 수 없고, swarm 서비스와 함께 사용할 수 없다
  • swarm 서비스를 사용할 때는 --mount를 사용한다

 


<참고자료>

https://docs.docker.com/storage/tmpfs/

'완벽한 IT 인프라 구축을 위한 Docker 2판'

반응형