据我所知,当docker映像被拉出来时,它们被安装到/var/lib/docker中。是否有办法改变这个位置,比如到一个挂载的卷,比如/mnt?
当前回答
对于Debian/Ubuntu或Fedora,您可能可以使用其他答案。但是,如果/etc/default/docker或/etc/sysconfig/docker下没有文件,并且您的系统正在运行systemd,您可能希望通过h3nrik来遵循这个答案。我使用Arch,这对我有用。
基本上,您需要配置systemd以读取新的docker映像位置作为环境变量,并将该环境变量传递到docker守护进程执行脚本。
为了完整起见,以下是h3nrick的答案:
你有/lib/systemd/system/docker。服务文件?
如果是,编辑它,以便Docker服务使用通常的/etc/default/ Docker作为环境文件:EnvironmentFile=-/etc/default/ Docker。
在/etc/default/docker文件中添加DOCKER_OPTS="-g /home/rseixas/Programs/Docker/images"。
最后执行systemctl daemon-reload && systemctl restart docker。
欲了解更多信息,请参阅文档。
其他回答
该解决方案适用于Red Hat 7.2和Docker 1.12.0
编辑文件 /lib/systemd/system/docker.服务。
在ExecStart指令的末尾添加-g /path/to/docker/。完整的直线应该是这样的。
ExecStart=/usr/bin/dockerd -g /path/to/docker/
执行以下命令
systemctl daemon-reload
systemctl restart docker
执行命令查看docker目录
docker info | grep "loop file\|Dir"
如果您在Red Hat或docker 1.7.1中有/etc/sysconfig/docker文件,请检查这个答案。
基于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服务
sudo systemctl stop docker
移动现有docker目录到新位置
sudo mv /var/lib/docker/ /path/to/new/docker/
创建符号链接
sudo ln -s /path/to/new/docker/ /var/lib/docker
启动docker服务
sudo systemctl start docker
例如,不要使用符号链接将docker文件夹移动到/mnt。 这可能会导致使用docker rm命令时出现问题。
docker最好使用-g选项。 在Ubuntu上,你可以在/etc/default/docker.io中永久设置它。增强或替换DOCKER_OPTS行。
这里有一个例子: “DOCKER_OPTS = " - g / mnt /地方/其他/码头工人/”
复制粘贴版本的获胜者答案:)
只创建以下内容的文件:
$ sudo vi /etc/docker/daemon.json
{
"graph": "/my-docker-images"
}
在docker 1.12.6中的Ubuntu 16.04.2 LTS上测试
推荐文章
- 试图连接到https://index.docker.io时,网络超时
- 为每个Docker图像查找图层和图层大小
- 如何避免在为Python项目构建Docker映像时重新安装包?
- 如何用docker-compose更新现有图像?
- 如何在构建docker期间设置环境变量
- 拉访问拒绝存储库不存在或可能需要docker登录
- 如何在ENTRYPOINT数组中使用Docker环境变量?
- Docker:容器不断地重新启动
- Mac/OS X上的/var/lib/docker在哪里
- 如何用docker-compose标记docker图像
- 从环境文件中读入环境变量
- 禁用特定RUN命令的缓存
- 从Docker容器获取环境变量
- E: gnupg, gnupg2和gnupg1似乎没有安装,但是这个操作需要其中一个
- 如何从docker更改默认docker注册表。IO到我的私人注册表?