docker不绑定0.0.0.0,只绑定127.0.0.1

问题描述 投票:0回答:1

我有一个创建多个容器的 docker compose 文件。 看起来docker端口只绑定到127.0.0.1,而没有绑定到0.0.0.0

这是 docker compose 文件的摘录,非常简单:

  database:
    image: mariadb:11.2
    container_name: ua-database
    environment:
      - MARIADB_ROOT_USER=root
      - MARIADB_ROOT_PASSWORD=1231231
      - MYSQL_TCP_PORT= 3308
    ports:
      - "3308:3308"
    restart: unless-stopped

如果我使用“0.0.0.0:3308:3308”或我的IP“192.168.10.153:3308:3308”进行测试,我也会遇到同样的问题(在这种情况下,本地主机不再工作,正常)。

它工作得很好,但两天前停止工作,没有任何变化。相同的配置在其他开发者主机上运行得很好。

我可以使用 127.0.0.1 访问数据库,但不能使用我的 IP。

我通过 docker ps -a 得到了什么(端口看起来绑定到 0.0.0.0) enter image description here

我无法连接我的IP(我使用curl只是为了测试与mysql的连接): enter image description here

我已经搜索了2天了,但我并没有被卡住,当然是发布前2天....

有什么线索吗?谢谢。

docker docker-compose
1个回答
0
投票

容器默认使用与主机相同的 DNS 服务器。 DNS = 127.0.0.1 指容器自身的环回地址。 IP 地址 127.0.0.1(也称为环回)专门供 localhost 使用。所以,就你的情况而言,它有效。现在,如果您的计算机中安装了虚拟化,那么您可以使用 0.0.0.0 作为 IP。它基本上是“无特定地址”占位符。如果您使用它来配置接口,它可以从接口中删除地址。现在,在服务器上下文中,0.0.0.0 表示“本地计算机上的所有 IPv4 地址”。如果主机的 IP 地址为 127.0.0.1,并且该主机上运行的服务器侦听 0.0.0.0,则可以通过该 IP 进行访问。希望,有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.