如何在 Ubuntu 中使用自定义参数自动启动 docker 守护进程



我需要在 Ubuntu 中使用一些命令行参数启动 docker 守护进程,手动执行此操作时,以下命令工作正常:

$ dockerd -H fd:// -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock

上面的命令使我可以将 docker 与 PhpStorm 的 docker 插件集成,并从那里配置容器。Docker 守护进程开始侦听 TCP 端口 2375,在我的情况下,PhpStorm 使用的是该端口。

我需要使用相同的参数自动启动 docker 守护进程,似乎有很多关于它的有争议的信息。我尝试了许多不同的解决方案,包括更改/etc/default/docker/etc/systemd/system/docker.service.d/docker.conf以及在那里编辑DOCKER_OPTS参数。

如何在 Ubuntu 16.04 中使用上述命令行参数自动运行 docker 守护进程?

在其他不起作用的解决方案中,这里有一个确实有效。它包括更改docker.service定义:

# edit the following file
# /lib/systemd/system/docker.service
# ...
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock
# ...

更改该文件后,运行 systemctl daemon-reload 以应用对docker.service文件所做的更改,然后运行 service docker restart

另一种解决方案不需要更改docker.service文件,可以在升级 docker 包后替换该文件,从而破坏配置。它需要创建或编辑/etc/docker/daemon.json文件:

{
  "hosts": [
    "fd://",
    "unix:///var/run/docker.sock",
    "tcp://127.0.0.1:2375"
  ]
}

在进行这些更改后重新启动 docker 服务还会使 docker 守护程序侦听端口 2375 上的 TCP 连接或使用 Unix 套接字的连接。

请注意,上述解决方案不能一起使用:只能使用其中一个来防止冲突。

最新更新