【发布时间】:2021-11-17 19:19:25
【问题描述】:
docker新手,请更正我的说法 我正在尝试使用 docker 引擎机器中的端口 80 访问 docker 容器 ex:nginx Web 服务器,但无法访问它。
这里是我的 docker Engine 网络 10.20.20.0/24。
Docker 引擎 IP:10.20.20.3
> Telnet 10.20.20.3 80 Connection failed
tcp 0 0 10.20.20.3:80 0.0.0.0:* LISTEN 28953/docker-proxy
Docker 容器 IP : 172.18.0.4
> Telnet 172.18.0.4 80 Connection success
Docker 网络详情
[root@xxxxxxxxx]# docker network inspect 1984f08c739d [
{
"Name": "xxxxxxxxxxxxx",
"Id": "1984f08c739d6d6fc6b4769e877714844b9e57ca680f61edf3a528bd12ca5ad1",
"Created": "2021-11-13T21:01:27.53591809+05:30",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"126d5128621fa6cde0389f4c6e0b53be36670bce5f62e981da6e17722b88c4a9": {
"Name": "xxxxxxxxxxxxxxx",
"EndpointID": "b011052062ae137e3d190032311e0fbc5850f0459c9b24d8cc1d315a9dc18773",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.18.0.4/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "default",
"com.docker.compose.project": "xxxxxxxx",
"com.docker.compose.version": "1.29.2"
}
} ]
我可以在 10.20.21.0/24 等其他网络中访问这些 nginx。但不在同一个网络 10.20.20.0/24 或在其上运行的同一个 docker 引擎上。
【问题讨论】:
-
各种网络是什么?他们来自哪里?通常,在
docker network inspect等位置显示的 IP 地址对 Docker 来说是私有的,您无法从其他主机(或者在大多数情况下根本无法从 Docker 外部)访问它们。你是如何启动容器的,你是如何尝试连接它的,从哪里连接? -
容器在默认桥接网络上运行。这里我的 docker 为 mongo db 撰写文件“版本:'3.1' 服务:mongo: image: mongo:4.4.8 restart: always volumes: - /opt/db:/data/db - /opt/configdb:/data/configdb端口:-“10.20.20.3:27017:27017”环境:MONGO_INITDB_ROOT_USERNAME:root MONGO_INITDB_ROOT_PASSWORD:XXXXXXXXX”
-
Docker 引擎 VM 具有两个独立的接口 eth0 和 eth1。我需要使用带有容器流量的 eth1 10.20.20.3 对其进行配置,并通过 eth1 发送接收。 @大卫迷宫
标签: docker nginx containers