Docker 에 Volumes 추가 하기.
Docker 를 서비스 모드로 실행을 시키면 나중에 문제가되는게 하나 있다. 예를들어, MySQL 을 Docker 를 이용해서 서비스 모드로 실행시켰다고 치자. 그러면 MySQL를 위한 데이터 디렉토리 Container 내에 생성된다. 만일 MySQL을 패치된 버전으로 올리고 싶다면 어떻게 될까? 이럴 경우에 데이터 디렉토리를 Container 내에서 백업할 방법이 없다.
이를 위해서 Docker 에는 Data Volumes 을 추가 할 수 있다.
Data Volumes
데이터 볼륨은 호스트 파일 시스템을 컨테이너에 마운트 하는 방법이다. 따라서 Container 가 중지되었거나 Container 를 삭제했다 하더라도 호스트 파일 시스템에는 Container 에서 사용했던 데이터 볼륨의 데이터가 살아 있게 된다.
이를 이용하면 MySQL, Redis 와 같이 데이터를 보존해야 하는 서비스를 위해서 호스트에 파일을 저장하도록 할 수있다.
1 2 3 |
docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true \ --name mysql \ -v /home/systemv/mysql/data:/var/lib/mysql mysql:8 |
-v 옵션을 통해서 로컬 호스트 디렉토리를 Container 의 데이터 디렉토리를, 여기서는 MySQL의 데이터 디렉토리인 /var/lib/mysql , 마운트 하도록 했다.
이렇게 서비스를 실행하고 난 후에 호스트의 /home/systemv/mysql/data 디렉토리를 살펴보면 MySQL 위한 데이터 파일이 생성되었음을 확인 할 수 있다.
Docker inspect [Container]
이 명령어를 이용하면 Container 의 정보를 확인 할 수 있다. Data Volume 상태와 Container 의 IP 주소등을 다양한 정보를 살펴볼 수 있다.
1 2 3 4 |
]$ docker inspect mysql-server | grep -i "ipaddress" "SecondaryIPAddresses": null, "IPAddress": "172.17.0.2", "IPAddress": "172.17.0.2", |