gpt4 book ai didi

networking - Docker容器到主机的路由

转载 作者:行者123 更新时间:2023-12-02 19:40:29 24 4
gpt4 key购买 nike

我需要以下问题的更好的最新解决方案:

问题:我必须手动创建一个iptable规则,以允许从动态docker网桥到主机的路由。否则,容器a无法连接到容器b,因为默认情况下,从docker网络到docker主机本身没有路由。

我有以下设置:

container-nginx (docker)
|
|-container-jira (docker) (https://jira.example.com)
|-container-confluence (docker) (https://confluence.example.com)

为了使Jira和Confluence之间的Atlassian应用程序链接正常运行:
  • Jira通过https://confluence.example.com
  • 访问Confluence
  • Confluence通过https://jira.example.com
  • 访问Jira

    我使用docker-compose进行整个设置,所有容器都在同一网络内。默认情况下,这将不起作用,对于主机confluence.example.com和jira.example.com,两个容器都将“没有通往主机的路由”。因为docker网络内部的每个容器都没有通往docker主机本身的路由。

    当前,每次初始化安装程序时,我都会从动态创建的ID为“br-wejfiweji”的Docker桥到主机手动创建iptable规则。

    这很麻烦,在Docker 1.11.x中是否有“新方法”或“更好方法”来做到这一点?

    最佳答案

    docker-compose版本2确实创建了一个网络,该网络允许所有容器相互查看。请参阅“Networking in Compose”(从docker 1.10开始)

    如果您的容器是使用正确的主机名(即jira.example.comconfluence.example.com(请参见 docker-compose.yml hostname directive)创建的,则nginx可以将代理直接传递给jira.example.comconfluence.example.com
    这两个主机名将解析为docker-compose为这3个(nginx,jira和confluence)容器创建的网络内正确的IP地址。

    我建议在注释中使用 alias ,以使jira将合流视为nginx(nginx是合流的别名),以便jira在访问合流时始终使用nginx。

    version: '2'

    services:
    # HTTPS-ReverseProxy
    nginx:
    image: blacklabelops/nginx
    container_name: nginx
    networks:
    default:
    aliases:
    - 'crucible.example.com'
    - 'confluence.example.com'
    - 'crowd.example.com'
    - 'bitbucket.example.com'
    - 'jira.example.com'
    ports:
    - '443:443'

    关于networking - Docker容器到主机的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37775266/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com