小编gra*_*fra的帖子

如何使用systemd让docker在centos下监听unix和TCP socket

我已经使用 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 套接字。

如果有人能指出细节,那就太好了。

api tcp centos systemd docker

3
推荐指数
1
解决办法
5839
查看次数

标签 统计

api ×1

centos ×1

docker ×1

systemd ×1

tcp ×1