我在shell中启动了-H fd://
的docker守护程序,它出错了。操作系统是CentOS7。
# docker daemon -H fd://
FATA[0000] No sockets found
我可以从systemctl start docekr
开始。
# cat /etc/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd://
# ps -ef|grep docker
/usr/bin/docker daemon -H fd://
在admin guide中,它说
在基于Systemd的系统上,您可以通过Systemd套接字激活与守护进程通信,使用docker daemon -H fd://。使用fd://可以很好地适用于大多数设置,但您也可以指定单个套接字:docker daemon -H fd:// 3。如果找不到指定的套接字激活文件,则Docker将退出。您可以在Docker源代码树中找到使用Docker和Systemd进行Systemd套接字激活的示例。
所以我不能在shell中使用-H fd://
答案 0 :(得分:4)
编辑docker守护进程的systemd配置文件并删除 H fd://并更新ExecStart变量,如下所示:
# cd /etc/systemd/system/docker.service.d
[root@docker docker.service.d]# cat override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重新加载守护程序并启动服务
systemctl daemon-reload
systemctl start docker
systemctl status docker |grep running
有效:自2018年6月30日星期六开始有效(运行); 1min 56s前 Jun 30 14:52:48 docker dockerd [16917]:time =“ 2018-06-30T14:52:48.685718828-05:00” level = info msg =“防火墙正在运行:true” [root @ docker docker.service.d]#
答案 1 :(得分:0)
要启动docker守护程序,fd://
表示它由Systemd启动,侦听套接字由Systemd创建并传递给docker守护程序。因此,如果您尝试从终端使用它,它将失败,因为您不创建套接字并将其传递给docker守护程序。对于docker cli,如果你有tcp套接字监听,你可以使用与tcp
协议相同的方式使用它。
我已在https://stackoverflow.com/a/43408869/1000254回答了类似的问题,您可以参考该问题获取更多详情。