Ubuntu Docker更改默认镜像和容器存储位置

测试操作系统: Ubuntu server 20
docker版本:20.10.6

1, 为什么

注: 通常,当开始使用docker时,我们并不太关心Docker 用于存储镜像和容器的默认目录。当使用Docker进行更多实验时,Docker开始占用大量的空间时,你不得不按下紧急按钮。所以现在是时候把故障排除放在如何改变docker的默认存储位置了。

2. 怎么做

方法一:

前提需要了解:

  • Docker 当前使用的默认存位
  • Docker 当前使用的存储驱动程序
  • 镜像和容器要存放的新存储空间

Docker 默认的位置在/var/lib/docker,当前所有的镜像、容器都存储在这儿。如果你有任何在运行的容器,停止这些容器,并确保没有容器在运行,然后运行以下命令,确定当前Docker使用的存储驱动

sudo docker info

在输出的信息中,查找Storage Driver那行,并记下:

Storage Driver: overlay2

docker存储根目录:

Docker Root Dir: /var/lib/docker

关闭docker服务:

sudo systemctl stop docker.service

创建一个新的文件夹作为docker镜像新的存储位置,记下这个文件夹的路径:

sudo mkdir -p /home/data/docker

编辑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=/home/data/docker --storage-driver=overlay2

开启docker来更新配置:

sudo systemctl daemon-reload
sudo systemctl start docker

方法二:

然后在将这个文件夹拷贝到新的地方(比如说更大的硬盘上,假设是/data分区,它挂载在一个单独硬盘上):

sudo cp -r /var/lib/docker /data/docker

然后修改docker中默认镜像和容器的保存位置,刚安装docker后没有该文件,需要新建。

sudo vim /etc/docker/daemon.json

将里面的data-root改为新的docker容器存储位置,

“data-root”: “/home/data/docker”,

然后重启docker服务,就可以更新docker默认的镜像容器保存位置,特别注意,如果新的保存位置里拷贝了原来容器保存位置里的所有内容,那么镜像数据等也就迁移过来了。

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
posted @ 2021-05-07 19:49  buildings  阅读(1913)  评论(0编辑  收藏  举报