据我所知,当docker映像被拉出来时,它们被安装到/var/lib/docker中。是否有办法改变这个位置,比如到一个挂载的卷,比如/mnt?
当前回答
基于Linux安装后步骤指南和我在web爬行时发现的官方方法如下:
覆盖docker服务配置文件: Sudo systemctl编辑docker.service 添加或修改以下行,替换您自己的值。 (服务) ExecStart = ExecStart = / usr / bin / dockerd——图=“/ mnt /码头工人”
保存文件。(它创建了:/etc/systemd/system/docker.service.d/override.conf)
重新加载systemctl配置。 Sudo systemctl daemon-reload 重启码头工人。 Sudo systemctl restart docker.service
在这之后,如果你可以核化/var/lib/docker文件夹,如果你没有任何映像,你可以备份。
其他回答
在最新版本的Docker中,你可以将data-root参数的值设置为自定义路径,在/etc/docker/daemon.json中 (根据https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file)。
在旧版本中,你可以在启动Docker守护进程时使用-goption改变Docker的存储基本目录(容器和映像所在的目录)。(查看docker—help)。 当Docker启动时,您可以通过将其添加到/etc/default/docker来自动应用此设置
对于新的docker版本,我们需要使用data-root,因为graph在v17.05.0中已弃用:官方弃用文档
编辑/etc/docker/daemon.Json(如果它不存在,创建它),并包括:
{
"data-root": "/new/path/to/docker-data"
}
然后重新启动Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
更详细的一步一步的解释(包括移动数据)使用Docker存储与data-root可以在:博客文章中找到 在Windows的情况下,类似的帖子Windows特定
我用的是docker 19.03.14版本。下面的链接帮助了我。
检查这个链接
在/etc/docker/daemon.我在section下面添加了json文件:-
{
"data-root": "/hdd2/docker",
"storage-driver": "overlay2"
}
对于那些期待2020年的人。以下是针对Windows 10 Machine的:
在Hyper-V管理器的全局操作窗格中单击Hyper-V 设置… 下的“虚拟硬盘”更改位置 默认到您想要的位置。 在虚拟机下更改 从默认位置移到所需位置,然后单击应用。
单击“确定”关闭Hyper-V设置页面。
因为我没有找到在Fedora中这样做的正确说明(编辑:人们在评论中指出,这也应该在CentOS和Suse上工作)(/etc/default/docker不被使用),我在这里添加我的答案:
您必须编辑/etc/sysconfig/docker,并在OPTIONS变量中添加-g选项。如果有多个选项,请确保将它们用“”括起来。在我的例子中,该文件包含:
OPTIONS=--selinux-enabled
所以它会变成
OPTIONS="--selinux-enabled -g /mnt"
重启后(systemctl restart docker), docker应该使用新的目录
推荐文章
- 如何从私有docker注册表中删除图像?
- 创建多个标签码头镜像
- Docker -如何将文件从镜像复制到主机?
- 如何防止docker在系统启动时自动启动容器?
- 什么是Docker映像“层”?
- 无法从docker-compose连接到docker
- Docker错误无法删除Docker容器,冲突:无法删除存储库引用
- 如何让容器在Kubernetes上运行?
- 如何备份docker容器的数据卷?
- Docker入口点运行bash脚本被“拒绝权限”
- 我如何复制Docker作为非根?
- 如何禁用容器上的自动重启?
- 如何传递参数到Dockerfile?
- 如何知道docker是否已经登录到docker注册服务器
- 为什么安装了Docker而没有安装Docker Compose?