在私有 IP 上访问 Docker 容器

问题描述

我在 Azure Linux 中创建了一个 sonarqube docker 容器,但是我无法访问它。 Azure Linux VM 没有公共 IP。它只有一个私有 IP 地址。

无论如何,我可以通过私有 IP 访问容器吗?

 # docker run -d --name sonarqube -p 1.1.1.1:9000:9000 sonarqube:lts
25c34ffb9775a4bd7761d1de1583d4d187f6ce9be6e5db3a419afd1f05806523
HSTSCMN20356:/opt/sonarqube/elasticsearch/config # docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                           NAMES
25c34ffb9775        sonarqube:lts       "./bin/run.sh"      6 seconds ago       Up 4 seconds        1.1.1.1:9000->9000/tcp   sonarqube
:/opt/sonarqube/elasticsearch/config #

解决方法

您可以从网络中的任何机器(就像同一网络上的另一个虚拟机)访问私有地址上的容器。您需要有一个公共 IP 地址才能从您的 PC 通过 Internet 访问它,或者您需要使用 VPN 将您的 PC 连接到专用网络。

确保 sonarqube 没有绑定到环回 IP (127.x.x.x)。

PS:1.1.1.1 似乎不是正确的内部 IP。您确定这是您的内部 IP 地址吗?