将默认泊坞窗容器移动到磁盘上的另一个地方

我们试图找出如何改变docker集装箱的目标位置。 默认情况下,它是在/ var / lib / docker / containers中创build的。 可以说我想把它移动到/ tmp / docker。 我到目前为止所能find的只是docker的数量,但它不是做这件事的目的是不同的。

我们要做的是将容器放在服务器的RAM内存中,这样我们可以大大减less构build二进制文件的时间。

可能吗?

问候,约旦

似乎有一个-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 ... 

请参阅@thaJeztah https://github.com/docker/docker/issues/3127

也可以使用daemon.jsonconfiguration文件而不是/ etc / default / docker。 / etc / default / docker仅用于运行新贵的系统,而不适用于运行systemd的系统,因此更便于携带。 此外,它允许重新加载一些configuration设置,而无需重新启动守护进程;

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

例如

我在Ubuntu 16.04.1上,但不应该因为这是一个跨发行版的解决scheme。

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

{“graph”:“/ path / to / docker”}为我工作,我没有乱搞暴发户或systemd。

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

停止Docker服务

  1. chkconfig停靠者closures

  2. 重新启动服务器

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

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

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

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

7.chkconfig docker on

8.systemctl守护进程重新加载

9.systemctl重启docker

  1. 通过引用这个命令启动你的旧容器 – > docker ps -a

停泊docker服务:

 service docker stop 

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

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

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

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

开始docker服务:

 service docker start