乐趣区

关于docker:debain系统下修改docker的默认路径

docker 的默认门路位于 /var 中,但往往 /var 门路的容量并不大,一旦 docker 的镜像、层等稍等大一些,便有把 /var 写满的危险。

本文给出一种迁徙 docker 默认门路的办法.

批改配置文件

假如新的 docker 目录咱们设置为 /home/docker。

批改前咱们先备份一下:

panjie@debian-docker-pro:/lib/systemd/system$ sudo cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak

批改 /lib/systemd/system/docker.service 中的 ExecStart=/usr/bin/dockerd -H fd://...ExecStart=/usr/bin/dockerd -g /home/docker -H fd://

以下是比照信息;

panjie@debian-docker-pro:/home$ diff -uP -N /lib/systemd/system/docker.service.bak /lib/systemd/system/docker.service
--- /lib/systemd/system/docker.service.bak    2023-01-11 16:00:45.071017829 +0800
+++ /lib/systemd/system/docker.service    2023-01-11 16:03:42.330635006 +0800
@@ -10,7 +10,7 @@
 # the default is not to use systemd for cgroups because the delegate issues still
 # exists and systemd currently does not support the cgroup feature set required
 # for containers run by docker
-ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
+ExecStart=/usr/bin/dockerd -g /home/docker -H fd:// --containerd=/run/containerd/containerd.sock
 ExecReload=/bin/kill -s HUP $MAINPID
 TimeoutSec=0
 RestartSec=2

进行服务

进行所有的正在运行的 docker 容器后,咱们开始进行 docker 服务

$ sudo systemctl stop docker

此时咱们将失去了配置文件曾经变更的揭示,而后执行使配置失效

$ sudo systemctl daemon-reload

同步数据

接下来咱们同步原文件夹中的数据

$ sudo rsync -aqxP /var/lib/docker/ /home/docker

重启服务

最初重启服务,并重启相干的 docker 容器

$ sudo systemctl enable docker

参考:https://gist.github.com/niles…

退出移动版