Docker Container가 무슨 이유로건 중단되고 재실행된다면 그전의 데이터는 어떻게 되는걸까
이 문제를 해결하는 것이 Docker Volume
Container로 MySQL을 실행하는 경우 데이터가 저장되는 공간을 Docker Volume으로 설정
docker run -d --name=nginx -p 8081:80 nginx
#브라우저 방문:https://localhost:8081/
docker exec --user=root -it nginx sh
#apt update
#apt install nano
#nano /usr/share/nginx/html/index.html (내용 편집: Welcome to Docker Volume)
#exit
docker restart nginx
#위의 과정을 반복해 /usr/share/nginx/html/index.html 내용 확인 시 원상복구된 것을 볼 수 있음

nginx 컨테이너를 구동해준다. name으로 별칭을 지정해주고 -p 태그로 포트를 열어준다.

접속해보면 화면이 잘뜬다.

실행된 nginx 컨테이너 안에서 쉘스크립트를 실행한다.

파일 수정에 필요한 절차를 수행해준다.(nano 설치를 위한)

title부분을 Docker Volume으로 수정했다.

다시 원상복구된 것을 확인할 수 있다. volume 설정을 안하면 이렇게 영구적이지 못하다.
ls -tl /Users/Documents/yjbenkang/nginx/html
#index.html
#test.html
docker run -p 8081:80 -d --name nginx_demo -v /Users/Documents/yjbenkang/nginx/html:/usr/share/nginx/html nginx
#https://localhost:8081/
#index.html 내용 수정하고 브라우저에서 재방문
#nginx를 재시작하고 내용이 유지되는지 확인

호스트 파일 경로에 nginx/html 폴더밑에 index.html와 test.html 파일을 생성한다.

v태그에 콜론 기준으로 호스트 파일 경로를 앞에, 컨테이너 파일 경로를 뒤에 입력하고 nginx 컨테이너를 실행한다.


위와 같이 호스트 파일 경로 내에서 만든 파일이 정상적으로 잘반영되었다.

호스트쪽에서 파일을 수정하고 확인을 해보자.

수정한 것이 도커내 파일에 바로 잘 반영이 된다.

이번엔 도커 컨테이너를 멈추고 지운다음에 다시 재실행했을 때도 볼륨이 유지되는지 확인해보자.


호스트 파일 경로의 파일들이 정상적으로 유지됨을 확인할 수 있다 !
- 호스트 파일 시스템 : airflow-setup/dags
둘의 내용이 동일해야함
- Docker Container 파일 시스템 : /opt/airflow/dags
docker exec **** ls -tl /opt/airflow/dags
#MySQL_to_Redshift_v2.py
#UpdateSymbol_v3.py
#UpdateSymbol.py
docker volume ls
#어떤 볼륨있는지 확인
docker volume rm
#특정 볼륨 확인
docker volume prune
#사용되지 않는 볼륨 삭제
docker volume inspect
#특정 볼륨 깊게 살펴볼 때