我需要在Ubuntu中使用一些命令行参数启动docker守护进程,并且在手动执行此操作时,以下命令可以正常工作:
$ dockerd -H fd:// -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock
上面的命令使我可以将docker与PhpStorm的docker插件集成,并从那里配置容器。 Docker守护程序开始侦听我的案例中由PhpStorm使用的TCP端口2375。
我需要使用相同的参数自动启动docker守护进程,似乎有很多有争议的信息。我尝试了许多不同的解决方案,包括更改/etc/default/docker
或/etc/systemd/system/docker.service.d/docker.conf
以及编辑DOCKER_OPTS
参数。
如何在Ubuntu 16.04中自动使用上述命令行参数运行docker守护程序?
答案 0 :(得分:2)
在其他无法解决的解决方案中,here是有效的解决方案。它包括更改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
。
Another solution不需要更改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套接字的连接。
请注意,上述解决方案不能同时使用:只能使用其中一个来防止冲突。