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

时间:2015-03-19 15:43:15

标签: performance docker builder

我们正试图弄清楚如何更改docker容器的目标位置。默认情况下,它在/ var / lib / docker / containers中创建。     让我们说我想将它移动到/ tmp / docker。     到目前为止,我所能找到的只是码头工作量,但它没有做到这个用途的目的是不同的。

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

有可能吗?

此致 约旦

4 个答案:

答案 0 :(得分:4)

似乎有一个-g命令行选项,我真的不明白为什么它被称为图形...

-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 ...

答案 1 :(得分:1)

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

停止Docker服务

  1. chkconfig docker off

  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. 7.chkconfig docker on

    8.systemctl daemon-reload

    9.systemctl restart docker

    1. 参考此命令启动旧容器 - > docker ps -a

答案 2 :(得分:1)

见@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

E.g

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

将这个json放入/etc/docker/daemon.json:

{ “graph”:“/ path / to / docker” } 为我工作,我不必混淆新贵或系统。

答案 3 :(得分:-1)

停止泊坞服务:

service docker stop

将容器文件夹移动到ssd:

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

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

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

启动泊坞窗服务:

service docker start