将默认泊坞窗容器移动到磁盘上的另一个地方
我们试图找出如何改变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服务
-
chkconfig停靠者closures
-
重新启动服务器
-
复制文件/ var / lib / docker到/ targetfolder / docker使用rsync -a –sparse –progress / var / lib / docker / apps / docker
-
编辑configuration:/lib/systemd/system/docker.service ExecStart = / usr / bin / dockerd -g / targetfolder / docker /
-
mv / var / lib / docker / var / lib / docker1(用于备份)
-
ls -s / targetfolder / docker / var / lib / docker(可选 – )
7.chkconfig docker on
8.systemctl守护进程重新加载
9.systemctl重启docker
- 通过引用这个命令启动你的旧容器 – > 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