docker root 경로 변경
centos 7.x 에서 docker를 기본설치시를 하면 /var/lib/docker 에 설치가 되고 있다.
이 경우 /var 파티션에 용량이 충분하지 않을 경우, 데이터 용량이 꽉 차는 경우가 있으며,
이를 해결하고자 여러 방법을 사용하였고, 가장 적절한 방법을 찾았다.
CentOS Linux release 7.6.1810 (Core)
Docker version : 18.09.5, build e8ff056
docker 를 최초 실행시 아래경로를 먼저 확인한 후 실행한다고 한다.
/etc/docker
그래서 다음과 같이 파일을 하나 만들어 주었다.
vim /etc/docker/daemon.json
{
"data-root": "/data/docker",
"storage-driver": "overlay2"
}
/data/ 파티션을 크게 할당해 놓은 상태이기에, 해당 파티션에 docker 경로를 넣어주었다.
docker 폴더는 기존에 설치되었던, /var/lib/docker 폴더를, 통째로 복사해 놓았다.
# cp -R /var/lib/docker /data
또한 여러 문서에 보면 /lib/systemd/system/docker.service 여기에서 ExecStart 를 수정하면된다고 했지만,
제대로 실행되지 않았으며, 해당 파일을 수정 시 향후 업데이트할 때 영향을 미친다고 한다.
docker에서 운영되는 모든 데이터는 유실 위험성이 있기 때문에, 별도의 안정적인 disk 볼륨에 데이터를 보관하던지
주기적인 백업이 필요하다는 것을 새삼 깨닫게 되었다.
[docker backup]
컨테이터 백업
docker export Container ID > /data/docker_export_pmm-data.tar
tar에서 Container 로 복원
cat /home/docker_backup.tar | docker import docker_image_name:tag_name
이미지 백업
docker save docker_image_name > /home/docker_backup.tar
tar 에서 이미지로 복원
docker load < /home/docker_backup.tar
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb022d1af510 percona/pmm-server "/opt/entrypoint.sh" 5 days ago Up 5 days 0.0.0.0:80->80/tcp, 443/tcp pmm-server
5a07d8e63875 percona/pmm-server "/bin/true" 5 days ago Created pmm-data
# docker images
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
percona/pmm-server latest deac61541b67 3 months ago 1.08GB
참고)
https://stackoverflow.com/questions/42279278/how-to-change-docker-installation-directory-in-centos-7-with-docker-1-13-version
https://docs.docker.com/config/daemon/systemd/#runtime-directory-and-storage-driver