728x90
< Lesson 4. Docker Bind Mount & Volume >
개념 설명 :
컨테이너에 생성되는 모든 파일은 컨테이너 레이어에 저장된다. 이 데이터들의 런타임은 컨테이너와 동일하다. 따라서 컨테이너가 종료되는 즉시 컨테이너에 생성된 파일들은 사라지게 되므로, 이 데이터를 영구적으로 저장하기 위해서는 볼륨을 반드시 사용해야 한다.
1) Bind Mount :
docker 초기부터 사용한 방법. host의 특정 디렉토리와 컨테이너의 디렉토리를 연결하는 방식이다. 쉽게 사용할 수 있지만 docker에 의해 관리되는 것이 아니기 때문에 따로 관리하지 않으면 관리하기가 쉽지 않다. 또한 마찬가지 보안문제와 호스트 파일시스템에 대한 의존성 문제가 발생 할 수 있는 것이 단점이다.
2) Volume :
volumed은 docker에 의해서 관리되는 storage이다. docker 명령에 의해 관리할 수 있으며, 다양한 드라이버를 지원하고, image에서 volume부분에 값이 지정되어 있다면, 컨테이너를 실행할 때 역시 마찬가지로 volume을 지정해 주어야 한다.
Bind Mount 사용 :
$ mkdir ~/bm1 ; touch ~/bm1/filea.txt
$ docker run -itd --name os3 -v ~bm1:/tmp/mount centos:latest
$ docker exec os3 ls /tmp/mount
Volume 사용 :
$ docker volume
$ docker volume create vol1
$ docker volume ls
$ docker inspect vol1
$ docker run -itd --name os5 -v vol1:/tmp/volume centos:latest
$ docker run -itd --name web3 -v vol1:/usr/local/apache2/htdocs:ro httpd:latest
docker exec os5 cat /tmp/volume/index.html
728x90
'[DevOps] > [Docker]' 카테고리의 다른 글
[Docker] Buildx: Multi-Arch images 빌드하기 (linux/amd64, arm64) (0) | 2021.10.10 |
---|---|
[Docker] 이미 실행한 컨테이너 포트포워딩 재설정하기 (1) | 2021.10.05 |
[Docker] 컨테이너 인프라를 위한 DevOps 환경 구축-2.Docker Command(feat. 정보산업진흥원) (0) | 2020.10.13 |
[Docker] 컨테이너 인프라를 위한 DevOps 환경 구축-1.개요와 설치(feat. 정보산업진흥원) (0) | 2020.10.13 |
[ML/Lecture] Docker로 실습환경 구축 (2) | 2020.06.19 |