修改Docker 镜像默认存储位置的4个方法
要修改Docker镜像的默认存储位置,可以按照以下方法进行操作:
方法一:修改/etc/docker/daemon.json法
- 停止Docker服务:运行以下命令停止Docker服务:
sudo systemctl stop docker
- 备份现有的Docker数据目录:将现有的Docker数据目录备份到新的位置,以防止数据丢失。
创建新的Docker数据目录:在新的位置创建一个新的Docker数据目录,例如 /new/docker-data。
sudo mkdir /new/docker-data
- 编辑Docker配置文件:使用文本编辑器打开Docker的配置文件 /etc/docker/daemon.json。
sudo nano /etc/docker/daemon.json
- 在配置文件中添加存储位置的设置:在打开的配置文件中添加以下内容,将 "data-root" 配置为新的Docker数据目录的路径:
"data-root": "/new/docker-data"
- 保存并关闭配置文件。
设置正确的文件夹权限:运行以下命令以确保新的Docker数据目录具有正确的文件夹权限:
sudo chown -R root:root /new/docker-data
- 启动Docker服务:运行以下命令以启动Docker服务:
sudo systemctl start docker
- 验证新的存储位置:运行以下命令检查Docker存储位置是否已更改:
docker info
在返回的输出中,找到 "Docker Root Dir" 字段。如果该字段显示的是新的Docker数据目录的路径,则表示成功修改了Docker镜像的默认存储位置。
请注意,修改Docker镜像的默认存储位置可能会影响现有的镜像和容器。因此,在进行此操作之前,请确保已备份重要数据,并充分了解可能的风险。
方法二:软连接法
- 停止Docker服务:运行以下命令停止Docker服务:
sudo systemctl stop docker
- 备份现有的Docker数据目录:将现有的Docker数据目录备份到新的位置,以防止数据丢失。
- 创建新的Docker数据目录:在新的位置创建一个新的Docker数据目录,例如 /new/docker-data。
sudo mkdir /new/docker-data
- 移动现有的Docker数据目录:将现有的Docker数据目录移动到新的位置。
sudo mv /var/lib/docker /new/docker-data
- 创建软链接:使用软链接将原来的Docker数据目录链接到新的位置。运行以下命令:
sudo ln -s /new/docker-data /var/lib/docker
- 设置正确的文件夹权限:运行以下命令以确保新的Docker数据目录和软链接具有正确的文件夹权限:
sudo chown -R root:root /new/docker-data sudo chown -h root:root /var/lib/docker
- 启动Docker服务:运行以下命令以启动Docker服务:
sudo systemctl start docker
- 验证新的存储位置:运行以下命令检查Docker存储位置是否已更改:
docker info
在返回的输出中,找到 "Docker Root Dir" 字段。如果该字段显示的是新的Docker数据目录的路径,则表示成功修改了Docker镜像的默认存储位置。
请注意,使用软链接方式修改Docker镜像的默认存储位置可能会影响现有的镜像和容器。因此,在进行此操作之前,请确保已备份重要数据,并充分了解可能的风险。
方法三:使用 docker-storage-setup
命令来修改
在Docker版本1.12中,可以使用 docker-storage-setup
命令来修改Docker镜像默认存储位置。以下是使用该命令的步骤:
-
停止Docker服务:运行以下命令停止Docker服务:
sudo systemctl stop docker
-
修改存储设置:运行以下命令编辑存储设置文件:
sudo nano /etc/sysconfig/docker-storage-setup
-
在打开的文件中,找到
DOCKER_STORAGE_OPTIONS
行,并添加适当的选项来定义新的存储位置。例如:DOCKER_STORAGE_OPTIONS="--storage-opt dm.basesize=10G --storage-opt dm.fs=xfs --storage-opt dm.mountopt=discard --storage-opt dm.datadev=/dev/newdata --storage-opt dm.metadatadev=/dev/newmeta"
在上述示例中,我们可以通过修改
dm.datadev
和dm.metadatadev
来指定新的存储位置。注意:根据你的具体环境和需求,你可能需要根据实际情况更改这些选项。
-
保存并关闭文件。
-
运行
docker-storage-setup
命令来应用新的存储设置:sudo docker-storage-setup
这将根据新的存储设置重新配置Docker存储。
-
启动Docker服务:运行以下命令以启动Docker服务:
sudo systemctl start docker
现在,Docker镜像的默认存储位置应该已经修改成功。
请注意,这些步骤是基于Docker版本1.12的。如果你在使用其他版本的Docker,请参考相应版本的文档或命令,以确保正确地修改Docker镜像默认存储位置。同时,在进行此操作之前,请确保已备份重要数据,并充分了解可能的风险。
方法四:修改启动脚本法
如果你想在使用 systemd
的系统上修改Docker镜像的默认存储位置,可以按照以下步骤进行操作:
-
停止Docker服务:运行以下命令停止Docker服务:
sudo systemctl stop docker
-
创建并编辑Docker服务配置文件:运行以下命令以创建并编辑Docker服务的配置文件:
sudo systemctl edit docker.service
-
在编辑的文件中,输入以下内容以修改Docker镜像的默认存储位置:
[Service] ExecStart= ExecStart=/usr/bin/dockerd -g /new/docker-data
在上述示例中,我们使用了
-g
选项来指定新的存储位置为/new/docker-data
。注意:根据你的需要和系统配置,你可能需要根据实际情况调整存储位置的路径。
-
保存并关闭文件。
-
重新加载
systemd
配置:运行以下命令以重新加载systemd
配置文件:sudo systemctl daemon-reload
-
启动Docker服务:运行以下命令以启动Docker服务:
sudo systemctl start docker
现在,Docker镜像的默认存储位置应该已经修改成功。
请注意,这些步骤可以适用于使用 systemd
的系统。如果你使用其他启动系统或发行版,请参考相应的文档或配置文件来修改Docker镜像的默认存储位置。同时,在进行此操作之前,请确保已备份重要数据,并充分了解可能的风险。