systemd 不会使用 dockerd 配置文件

systemd 不会使用 dockerd 配置文件

我必须使用systemctl daemon-reload,并且systemctl restart docker每次重启后,docker 服务将使用 daemon.json 文件来覆盖默认设置。

Ubuntu 服务器 18.04,docker-ce 18.09.7

有没有办法让这种现象持续下去?

user@host:~$ cat  /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}

答案1

按着这些次序。

  1. 转到 /etc/init.d
  2. 添加一个文件(例如示例)并将您想要执行的脚本放在其中。
  3. chmod +x /etc/init.d/example. (权限)
  4. 在脚本中添加 # chkconfig: 345 99 10
  5. 保存 6 使用 —service example start 启动服务。

这应该作为系统服务/启动服务工作。

进入您的示例,vi /etc/init.d/example,然后添加 -

systemctl daemon-reload
systemctl restart docker

如果您的命令完成覆盖的工作,这将会起作用。

如果您遇到任何挑战,请告诉我,因为失真确实很重要。

答案2

启动时使用的默认配置文件实际上是这个:/var/snap/docker/current/config/daemon.json

您可以更新此文件。

# Remove existing /etc/docker/daemon.json fisrt.
ln /var/snap/docker/current/config/daemon.json /etc/docker/daemon.json

cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

相关内容