簡體   English   中英

Docker 無法從其他容器訪問已發布的端口

[英]Docker cannot access published port from other container

有兩個容器 jenkins 和 sonarqube,它們都在網絡 ci 下。

我可以使用鏈接的主機名和公開的端口從 jenkins 訪問 sonarqube,但無法使用主機 ip 和已發布的端口訪問。

# docker exec jenkins nc -zv sonarqube 9000
sonarqube (172.19.0.5:9000) open

# docker exec jenkins nc -zv PHYSICAL_HOST_IP 9000
nc: PHYSICAL_HOST_IP (PHYSICAL_HOST_IP:9000): Host is unreachable

PHYSICAL_HOST_IP是docker主機(或物理機)的IP,例如10.xxx

這是 docker-compose 配置:

docker-compose.jenkins.yml

version: '3.8'

services:

    jenkins:
        image: jenkinsci/blueocean
        container_name: jenkins
        restart: always
        external_links:
            - sonarqube:sonarqube
        ports:
            - "8080:8080"
        privileged: true
        networks:
            - ci

networks:
  ci:
     external: true

docker-compose.sonarqube.yml

version: "3"

services:

  sonarqube:
    image: sonarqube:8.4.2-community
    container_name: sonarqube
    restart: always
    links:
      - db:db
    ports:
      - "9000:9000"
    depends_on:
      - db
    networks:
      - ci
    environment:
      - SONARQUBE_JDBC_USERNAME=user
      - SONARQUBE_JDBC_PASSWORD=password
      - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonarqube

  db:
    image: postgres:12.4
    container_name: postgres
    restart: always
    networks:
      - ci
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=sonarqube

networks:
  ci:
     external: true

和網絡ci:

[
    {
        "Name": "ci",
        "Id": "...",
        "Created": "...",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.19.0.0/16",
                    "Gateway": "172.19.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            ...
        },
        "Options": {},
        "Labels": {}
    }
]

非常感謝!

請嘗試添加主機在sonar.properties文件下http.nonProxyHost

關注這兩個帖子以獲取更多詳細信息:

  1. https://github.com/SonarSource/docker-sonarqube/issues/150
  2. https://community.sonarsource.com/t/http-nonproxyhosts-has-no-effect-webhook-delivery-failing-ce-7-9-1-build-27448/17630

希望這可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM