docker daemon -H fd://在shell中出错

时间:2016-05-27 08:29:15

标签: docker

我在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://

2 个答案:

答案 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.6857188​​28-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回答了类似的问题,您可以参考该问题获取更多详情。