我已经使用 systemd 在 CentOS 下安装了 docker (v17.06.2-ce)。Docker 工作正常并侦听 unix 套接字。现在我想让 docker 监听 Unix 套接字和 TCP 套接字 2375。由于这是一个内部开发机器,安全性没有问题。
我浏览了互联网找到了几篇文章,但仍然有一些问题。
我的理解是我有 systemd 文件(docker.service),它在没有任何参数的情况下启动 dockerd。ExecStart=/usr/bin/dockerd
然后这里有文件demon.json 我可以列出我要听的内容。我的问题是在这里输入什么。它可能是。
{
"hosts": [ "unix:///var/run/docker.sock",
"tcp://0.0.0.0:2375"
]
}
Run Code Online (Sandbox Code Playgroud)
或者像这样的套接字激活?
{
"hosts": [ "unix:///var/run/docker.sock",
"fd://"
]
}
Run Code Online (Sandbox Code Playgroud)
然后我发现的第二件事是通过提供这样的文件 docker.sockst 来准备 systemd socket
[Unit] Description=Docker Socket for the API
PartOf=docker.service
[Socket]
ListenStream=tcp://0.0.0.0:2375
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
Run Code Online (Sandbox Code Playgroud)
但这只会定义一个 TCP 套接字。根据一篇文章,docker 将响应 TCP 端口,但不再响应 unix 套接字。
如果有人能指出细节,那就太好了。