在 Docker 中,每个容器都有自己的网络命名空间,这意味着每个容器可以有自己的网络配置,包括端口映射。

如果你想在同一台主机上运行一个绑定(Bind)容器和一个 ClearDNS 容器,并且它们都需要使用 53 端口,你可以使用以下两种方法使它们同时工作:

  1. 使用不同的主机端口:

    • 在运行绑定容器时,将其绑定到主机的另一个端口,例如 5353 端口:
      docker run -d -p 5353:53 bind
      
    • 同样,在运行 ClearDNS 容器时,将其绑定到主机的另一个端口,例如 5354 端口:
      docker run -d -p 5354:53 cleardns
      
    • 这样,绑定容器将监听主机的 5353 端口,而 ClearDNS 容器将监听主机的 5354 端口。你可以通过这些端口来访问它们。
  2. 使用 Docker 的网络功能:

    • 创建一个自定义的 Docker 网络:
      docker network create mynetwork
      
    • 在此网络中运行绑定容器,将其绑定到 53 端口:
      docker run -d --net=mynetwork --name=bind --restart=always -p 53:53 bind
      
    • 运行 ClearDNS 容器,并将其连接到相同的网络,不需要绑定到 53 端口:
      docker run -d --net=mynetwork --name=cleardns --restart=always cleardns
      
    • 现在,绑定容器和 ClearDNS 容器都可以通过其容器名称相互通信,因为它们在同一网络中。绑定容器将监听 53 端口,而 ClearDNS 容器将使用默认的 DNS 端口。

以上两种方法都可以让绑定容器和 ClearDNS 容器同时工作,并且它们都可以使用 53 端口。你可以根据你的需求选择其中一种。


原文地址: https://www.cveoy.top/t/topic/qiIr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录