将默认 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服务
chkconfig docker 关闭
重启服务器
复制文件 /var/lib/docker 到 /targetfolder/docker 使用
rsync -a --sparse --progress /var/lib/docker /apps/docker
编辑配置:/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -g /targetfolder/docker/
mv /var/lib/docker /var/lib/docker1(用于备份)
ln -s /targetfolder/docker /var/lib/docker(可选 - )
7.chkconfig docker 在
8.systemctl 守护程序重新加载
9.systemctl重启docker
- 参考这个命令启动你的旧容器 --> 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 打交道。
我们正在尝试找出如何更改 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服务
chkconfig docker 关闭
重启服务器
复制文件 /var/lib/docker 到 /targetfolder/docker 使用 rsync -a --sparse --progress /var/lib/docker /apps/docker
编辑配置:/lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -g /targetfolder/docker/
mv /var/lib/docker /var/lib/docker1(用于备份)
ln -s /targetfolder/docker /var/lib/docker(可选 - )
7.chkconfig docker 在
8.systemctl 守护程序重新加载
9.systemctl重启docker
- 参考这个命令启动你的旧容器 --> 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 打交道。