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

如何在Ubuntu中使用自定义参数自动启动docker守护进程?,ubuntu,docker,phpstorm,Ubuntu,Docker,Phpstorm,我需要在Ubuntu中使用一些命令行参数启动docker daemon,手动启动时,以下命令可以正常工作: $ dockerd -H fd:// -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock 上面的命令使我能够将docker与PhpStorm的docker插件集成,并从中配置容器。Docker守护进程开始侦听PhpStorm在本例中使用的TCP端口2375 我需要用相同的参数自动启动docker daemon,似乎有很多关于它的有

我需要在Ubuntu中使用一些命令行参数启动docker daemon,手动启动时,以下命令可以正常工作:

$ dockerd -H fd:// -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock
上面的命令使我能够将docker与PhpStorm的docker插件集成,并从中配置容器。Docker守护进程开始侦听PhpStorm在本例中使用的TCP端口2375

我需要用相同的参数自动启动docker daemon,似乎有很多关于它的有争议的信息。我尝试了许多不同的解决方案,包括更改
/etc/default/docker
/etc/systemd/system/docker.service.d/docker.conf
和编辑
docker\u选择那里的参数


如何在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套接字的连接


请注意,上述解决方案不能同时使用:应仅使用其中一种来防止冲突

我不得不使用docker.service使用相同的解决方法,不幸的是,官方使用docker_OPTS的方式忽略了这个特定的设置。我需要在Ubuntu 16.04上重新启动sudo服务docker,建议的>systemctl守护程序重新加载没有帮助。否则,我使用了Yury Fedorow回答中的另一个解决方案。然而,我添加了一个不安全的注册表,而不是一个监听端口。