도커 볼륨
1. 도커 볼륨 (Docker Volume)
- 도커 이미지로 컨테이너 생성 시, 읽기 전용으로 이미지가 생성됨
- 이렇게 되면, 컨테이너를 삭제 시, 데이터도 같이 날라가게 됨
- 이러한 문제점을 막기 위해 볼륨을 이용
※ 볼륨(Volume) : 컨테이너의 데이터 유지 한계를 극복하기 위해 로컬 PC에 컨테이너의 파일을 저장하는 공간
- 이를 통해, 데이터를 보관하고 컨테이너간 파일 공유가 자유로움
2. 볼륨의 유형
- 1) 익명 볼륨
- 로컬 PC 어딘가에 저장
- 컨테이너 종료와 함께 사라짐
- 추후, 볼륨 병합 때 사용
- 2) 네임드 볼륨
- 로컬 PC 어딘가에 저장
- 이름이 지정되어 따로 삭제하지 않으면, 유지됨
- 추후, 다른 컨테이너에 붙일 수 있음
3. 익명 볼륨 사용하기
- 컨테이너 생성 시, 익명 볼륨 설정
- docker run --name=app1 -d -p 8031:80 --rm -v /usr/share/nginx/html nginx
- ※ -v 옵션은 컨테이너의 /usr/share/nginx/html 폴더를 로컬 PC에 볼륨으로 만들겠다는 의미
- 익명 볼륨 생성 확인
- docker volume ls : 이름이 임의로 정해진 익명 볼륨 확인
- 컨테이너 내부로 들어가 파일 수정하기
- docker exec -it app1 bash : 컨테이너 쉘로 진입
- cd /usr/share/nginx/html : 수정할 파일이 있는 폴더로 이동
- apt-get install vim -y : vim 에디터 설치
- vim index.html : 설치한 vim으로 index.html 내용 수정
- 브라우저에서 수정된 내용 확인 (myserver:8031)
- 컨테이너 종료 시, 볼륨이 사라지는 것 확인
- docker stop app1
- docker volume ls
- 다시 익명 볼륨으로 컨테이너 생성 후, 파일 확인
- docker run --name=app1 -d -p 8031:80 --rm -v /usr/share/nginx/html nginx
- 브라우저가 초기화 된 것을 확인
- 즉, 익명 볼륨으로는 컨테이너의 데이터 유지 불가능
4. 네임드 볼륨 사용하기
- 컨테이너 생성 시, 네임드 볼륨 설정
- docker run --name=app1 -d -p 8031:80 --rm -v data:/usr/share/nginx/html nginx
- -v 옵션으로 볼륨 설정할 때, 대상 폴더 앞에 볼륨명:을 붙임
- 네임드 볼륨 생성 확인
- docker volume ls : data로 이름 지어진 볼륨 확인 가능
- 컨테이너 내부로 들어가 파일 수정하기
- docker exec -it app1 bash : 컨테이너 쉘로 진입
- cd /usr/share/nginx/html : 수정할 파일이 있는 폴더로 이동
- apt-get update : 패키지 매니저 업데이트
- apt-get install vim -y : vim 에디터 설치
- vim index.html : 설치한 vim으로 index.html 내용 수정
- 브라우저에서 수정된 내용 확인
- 컨테이너 종료시에도 볼륨이 유지 되는 것을 확인
- docker stop app1
- docker volume ls
- 컨테이너 제거 후에도 data 볼륨이 있는 것을 확인
- 다시 네임드 볼륨으로 생성 후 파일 확인
- docker run --name=app1 -d -p 8031:80 --rm -v data:/usr/share/nginx/html nginx
- 브라우저로 변경사항이 계속 유지되는 것을 확인
'Back-End Study > Linux' 카테고리의 다른 글
컨테이너의 nginx 설정과 root 폴더 관리하기 (0) | 2022.09.29 |
---|---|
도커 마운트 볼륨 (0) | 2022.09.29 |
도커 컨테이너 실행 (0) | 2022.09.26 |
nginx 컨테이너 실행 (2) | 2022.09.19 |
컨테이너 관련 명령어 (0) | 2022.09.19 |