据我所知,当docker映像被拉出来时,它们被安装到/var/lib/docker中。是否有办法改变这个位置,比如到一个挂载的卷,比如/mnt?


当前回答

对于新的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服务

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版本,我们需要使用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特定

一个更简单的解决方案是创建一个软链接点,指向您想要的任何东西,例如

link -s /var/lib/docker /mnt/whatever

它适用于我的CentOS 6.5服务器。

在最新版本的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来自动应用此设置

在CentOS 6.5

service docker stop
mkdir /data/docker  (new directory)
vi /etc/sysconfig/docker

添加以下行

other_args=" -g /data/docker -p /var/run/docker.pid"

然后保存文件并再次启动docker

service docker start

并将存储库文件创建在/data/docker中