Docker容器服务正常,但是无法通过端口访问服务 Connection Refused

Docker容器服务正常,端口映射正常,但是无法通过端口访问服务。可以尝试以下方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 修改容器内服务所绑定的地址为 0.0.0.0 而不是 127.0.0.1
# 解释:在 Docker 中,使用 0.0.0.0 作为监听地址,表示容器内的应用程序将监听所有可用的网络接口上的指定端口,包括容器的内部网络接口和 Docker 分配给容器的网络接口。这允许外部请求通过 Docker 的网络机制传递到应用程序中。

# 例1:Nginx 配置(nginx.conf):
server {
listen 0.0.0.0:80;
...
}

# 例2:Python 的 Flask 框架可以通过命令行指定
flask run --host=0.0.0.0

# 例3:Dockerfile 中指定
CMD ["sh", "start.sh"]
# start.sh
python app.py --host=0.0.0.0