如何配置 docker 来限制旋转容器的端口范围

how to configure docker to limit the range of ports for spinning up containers

我们正在使用 Jenkins 和 docker 来完成 CI/CD。我们的 Jenkins 设置为 master/slave 样式,其中从节点分布在不同的数据中心。当需要进行新构建时,Jenkins master 在其中一个 DC 中识别一个 slave 并启动一个临时容器并在完成后将其拆除。

由于防火墙的限制,我们只有大约 10 个端口为某些 DC 中的从服务器打开。例如端口范围:8000 - 8010。通常 docker 使用 linux 端口范围 32768 到 61000。问题是如果主机端口绑定在 8000 之外,Jenkins master 无法与容器通信 - 8010. Jenkins docker 插件有限制,你不能绑定多个端口(可能是我错了)。我想知道我们是否可以在 docker 端或 Jenkins docker 插件中配置它。

在许多论坛上进行研究并与人们交谈后,这是不可能的,甚至不建议尝试这样做。解决此问题的建议实施是转移到 Docker Swarm,

  1. 你只有一个虚拟 docker 云
  2. 它负责在幕后启动容器,并在需要出现之前就做好使用准备。配置选项灵活。

在此处阅读有关 Swarm 的更多信息 https://docs.docker.com/swarm/