본문 바로가기
가상화 기술과 관리/Docker

Docker 노트정리3 (도커 볼륨)

by so5663 2024. 2. 17.

 

사용하지 않는 컨테이너 정리

docker container prune

 

docker mysql 컨테이너 데몬으로 실행 

docker container run -d -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=fleetman mysql:5

 

컨테이너에 접속해서 bash 실행

docker container exec-it [containerID] bash

 

mysql -p[password]

mysql> show databases;
mysql> use fleetman;
mysql> create table temp (temp varchar(255));

docker container stop [containerID]

 

 

중지후 다시 컨테이너를 실행하면 내가 만들었던 데이터는 사라진다. 

그 이유는 dockerhub를 보면 알수가 있는데

volume /var/lib/mysql 부분만 남아있고 나머지 데이터는 날라간다고 한다.

 

 

docker volume ls

볼륨 리스트 정리
docker  volume prune

 

볼륨과 이름을 지정하면 재사용이 가능;

 

docker container run -d -v mydata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=fleetman mysql:5

docker volume ls

 

결과

docker volume inspect mydata
docker container exec -it [containerId or containerName] bash

mysql -p[password]

mysql> show databases;
mysql> use fleetman;
mysql> create table  does_this_persist(dummy varchar(255));
mysql> exit

 

docker container stop [containerID]
docker container rm [containerID]

컨테이너를 삭제해도 볼륨에 남아 있음

 

실행 결과

volume  mydata가 남아있다.

 

다시 컨테이너를 실행하면..

docker container run -d -v mydata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=fleetman mysql:5

docker container exec -it [containerId or containerName] bash

mysql -p[password]

mysql> show databases;
mysql> use fleetman;
mysql> show tables;

 

결과

 

삭제된 컨테이너 볼륨이 남아있다.

 

 

출처 강의

https://www.udemy.com/course/docker-java-developer