赞
踩
Docker 默认安装的情况下,会使用
/var/lib/docker/
目录作为存储目录,用以存放拉取的镜像和创建的容器等。不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器多了后就容易尴尬,这里说明一下如何修改 Docker 的存储目录。
最简单粗暴的办法,当然就是直接把数据盘挂载到
/var/lib/docker
目录下,不过这样对整体影响太大,其他程序需要使用数据盘时很不方便,也可以使用软链接方式把/var/lib/docker
和数据盘目录连接在一起同样可以实现,但是后期可能不方便维护,所以还是从 Docker 端的修改入手。
前提需要了解:
docker info
Storage Driver: overlay
Docker Root Dir: /var/lib/docker
sudo systemctl stop docker.service
# 查看文件夹大小
sudo du -hd 1
sudo mkdir -p /mnt/docker
sudo cp -r /var/lib/docker/* /mnt/docker/
/etc/docker/daemon.json
文件sudo vim /etc/docker/daemon.json
默认情况下这个配置文件是没有的,这里实际也就是新建一个,然后写入以下内容:
{
"data-root": "/mnt/docker"
}
取决于具体的ubuntu版本或者kernel版本决定要用data-root还是graph
/mnt/docker --> docker的存储路径
{
"registry-mirrors": ["http://hub-mirror.c.163.com"],
"data-root": "/mnt/docker"
}
sudo vim /etc/systemd/system/multi-user.target.wants/docker.service
# 将ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock修改以下内容:
ExecStart=/usr/bin/dockerd --graph=/mnt/docker --storage-driver=overlay
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
docker info
docker ps -a
docker images
rm -rf /var/lib/docker/*
docker主要是做了文件系统的隔离,所以每个镜像和容器实际上都是依赖块隔离的硬盘空间(在里面部署一个隔离的文件系统),所以可以通过直接拷贝的方式进行迁移,而不需要担心有什么依赖关系无法通过拷贝带过去。
注:仅供学习参考,如有不足欢迎指正!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。