如何使用 TLS 保护 Docker 的 TCP 套接字

x33g5p2x  于2022-03-05 转载在 Docker  
字(0.5k)|赞(0)|评价(0)|浏览(287)

Docker 的 API 默认情况下完全不受保护,除了其 Unix 套接字上的文件系统权限。您应该在通过 TCP 公开 Docker API时设置 TLS,以便 Docker 引擎和您的客户端可以验证彼此的身份。否则,任何有权访问 TCP 端口的人都可以浏览您的 Docker 容器、启动新容器并像root在您的系统上一样运行操作。

配置的 TLS 将要求客户端提供由服务器证书颁发机构签名的有效证书。要使其正常工作,您需要创建 SSL 证书,然后设置 Docker Engine 以要求 TLS 连接。还必须调整 Docker CLI 客户端以期望 TLS 服务器。

暴露 TCP 套接字

您可以通过使用标志在启动进程时定义一个额外的端点来公开 Docker 的 TCP 套接字。该标志可以重复多次;在此示例中,Unix 套接字和 TCP 套接字都将可用:-Hdockerd

/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

端口 2375 通常用于未加密的 Docker 连接。设置 TLS 后,应改为使用端口 2376。

您可以通过修改 Docker 服务定义将 Docker 配置为自动使用这些标志。添加一个覆盖以/etc/systemd/system/docker.serv

相关文章