[docker] 컨테이너(container) 저장소(volume) 설정 - 컨테이너 마운트
1. 시험환경
˙ 우분투(ubuntu) 리눅스 v20.04
˙ docker
2. 목적
˙ 컨테이너(container)안에서 생성된 파일 및 데이터는 컨테이너 종료(rm)와 함께 삭제된다.
˙데이터 저장 전용 컨테이너(container)와 호스트(Host)를 이용하여 복합 저장소를 구성한다.
- 여러 컨테이너(container)안에서 생성된 파일을 데이터 저장 전용 컨테이너(container)에 마운트한다.
- 데이터 저장 전용 컨테이너(container)를 영구적인 저장소(volume)에 보관하기 위해 호스트에 마운트한다.

3. 적용
① -v 옵션과 함께 컨테이너(container)를 실행하면 Container의 저장소가 Host의 경로로 마운트 된다.
- 마운트 target 경로 : Host의 $(pwd)/docker-nginx-html
- 마운트 source 경로 : Container의 /usr/share/nginx/html


② --volumes-from 옵션과 함께 컨테이너(container)를 실행하면 지정경로를 다른 컨테이너(container, 데이터 저장 전용)에 마운트한다.
- $ docker run -d --volumes-from [container(저장소)] [image]


③ nginx 컨테이너(conatiner) 안에 진입하여 파일을 생성한다.
- "stupefied_joliot" 컨테이너(container) : test1.txt 파일 생성
- "confident_heyrovsky" 컨테이너(container) : test2.txt 파일 생성

④ 데이터 저장 전용 컨테이너(my-ubuntu)에 진입하여 다른 컨테이너(nginx)에서 생성한 파일이 저장되었는지 확인한다.
- 마운트 경로 : /usr/share/nginx/html은 nginx 실행을 위해 미리 정의된 경로이다.


⑤ 생성된 모든 컨테이너를 삭제한다.
- 모든 컨테이너 삭제 명령어 : $ docker rm $(docker ps -a -q)

4. 결과
˙ 컨테이너(conatiner)가 삭제되어도 Host 마운트 경로에 파일이 남아있는 것을 확인할 수 있다.
![]() |
![]() |

