Docker如何使用端口2375和4243?

时间:2017-04-13 19:11:41

标签: docker port

我看到端口2375和4243的各种实例在搜索互联网时用于看似相同的事情。此外,我的本地机器要求我使用2375进行连接,而当我将其推送到CI服务器时,它需要将其设置为4243.

Docker使用这些端口的原因是什么?它们有何区别?

1 个答案:

答案 0 :(得分:12)

可以使用dockerd -H选项在任何端口上配置docker socket。我看到的常见docker端口包括:

  • 2375:未加密的docker socket,远程root无密码访问主机
  • 2376:tls加密套接字,很可能这是您的CI服务器4243端口作为https 443端口的修改
  • 2377:swarm模式套接字,适用于群体管理器,不适用于docker客户端
  • 5000:docker注册服务
  • 4789和7946:覆盖网络

只有前两个设置为dockerd -H,群组模式可以配置为docker swarm init --listen-addrdocker swarm join --listen-addr的一部分。

我强烈建议您禁用2375端口并固定docker socket。远程利用此端口获取完全root访问权限而无需远程密码,这是微不足道的。执行此操作的命令非常简单:

docker -H $your_ip:2375 run -it --rm \
  --privileged -v /:/rootfs --net host --pid host busybox

可以在任何具有docker客户端的计算机上运行,​​以便在主机上为某人提供root shell,并在/ rootfs下提供完整的文件系统,在ip a下显示您的网络,并在{{1 }}

要在docker socket上设置TLS安全性,请参阅这些说明。 https://docs.docker.com/engine/security/https/