将默认 docker 容器移动到磁盘上的另一个位置

move default docker container to another place on the disk

我们正在尝试找出如何更改 docker 容器的目标位置。默认情况下,它是在 /var/lib/docker/containers 中创建的。 假设我想将其移动到 /tmp/docker。 到目前为止我能找到的只是 docker 卷,但它并没有做这个用途的目的是不同的。

我们想要做的是将容器放在服务器的 RAM 内存中,这样我们就可以显着减少构建二进制文件所花费的时间。

可能吗?

此致, 乔丹

好像有个-g命令行选项,我不太明白为什么叫graph...

-g, --graph="/var/lib/docker"              Path to use as the root of the Docker runtime

https://docs.docker.com/reference/commandline/cli/

mkdir /tmp/docker && docker -g /tmp/docker ...

停止docker服务:

service docker stop

将您的容器文件夹移动到您的 ssd:

mv /var/lib/docker/containers /mnt/ssd_example/

创建指向默认 docker 容器文件夹的符号链接:

ln -s /mnt/ssd_example/containers/ /var/lib/docker/containers

启动docker服务:

service docker start

我们尝试了以下步骤ps 将 Docket 容器文件夹转移到不同的文件夹:

停止Docker服务

  1. chkconfig docker 关闭

  2. 重启服务器

  3. 复制文件 /var/lib/docker 到 /targetfolder/docker 使用 rsync -a --sparse --progress /var/lib/docker /apps/docker

  4. 编辑配置:/lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -g /targetfolder/docker/

  5. mv /var/lib/docker /var/lib/docker1(用于备份)

  6. ln -s /targetfolder/docker /var/lib/docker(可选 - )

7.chkconfig docker 在

8.systemctl 守护程序重新加载

9.systemctl重启docker

  1. 参考这个命令启动你的旧容器 --> docker ps -a

见@thaJeztah https://github.com/docker/docker/issues/3127

也可以使用 daemon.json 配置文件代替 /etc/default/docker/etc/default/docker 仅用于系统 运行 upstart,而不用于系统 运行 systemd,因此更便携。它还允许在不重新启动守护进程的情况下重新加载一些配置设置;

https://docs.docker.com/engine/reference/commandline/daemon/#daemon-configuration-file

例如

我使用的是 Ubuntu 16.04.1,但这并不重要,因为这是一个跨发行版解决方案。

把这个json放到/etc/docker/daemon.json:

{
"data-root": "/path/to/docker"
}

对于旧版本,它是 "graph" 选项:

{
"graph": "/path/to/docker"
}

为我工作,我不必与 upstart 或 systemd 打交道。