当network_mode:“bridge”(docker-compose)时,无法从本地主机连接容器端口

这是我docker-compose.yml

yml version: '2' services: admin_db: build: context: . dockerfile: postgres.dockerfile args: - DB_NAME=admin_db - DB_USER=admin - DB_PASSWORD=admin_pass network_mode: "default" admin: build: context: . dockerfile: admin.dockerfile args: - UID=$UID - GID=$GID - UNAME=$UNAME command: /bin/bash depends_on: - admin_db ports: - "8000:8000" links: - admin_db network_mode: "bridge"

如果与networking_mode:“桥”我应该能够访问我的应用程序(pipe理员)从本地主机http://127.0.0.1:8000/ ,但目前,我能够访问它只在random-ip:8000从本地主机。 我能够http://127.0.0.1:8000/访问时,networking_mode是“主机”,但然后我无法链接容器。 有什么解决scheme有两个东西? – 链接容器 – 应用程序从本地主机运行在http://127.0.0.1:8000/

如果由于某些未知的原因正常链接不起作用,您可以随时创build另一个桥接networking,并直接连接到该泊坞窗图像。 通过这样做的运行图像的IP地址将永远是相同的。

我会像这样编辑它:

 version: '2' services: admin_db: build: context: . dockerfile: postgres.dockerfile args: - DB_NAME=admin_db - DB_USER=admin - DB_PASSWORD=admin_pass networks: back_net: ipv4_address: 11.0.0.2 admin: build: context: . dockerfile: admin.dockerfile args: - UID=$UID - GID=$GID - UNAME=$UNAME command: /bin/bash depends_on: - admin_db ports: - "8000:8000" extra_hosts: - "admin_db:11.0.0.2" networks: back_net: ipv4_address: 11.0.0.3 networks: back_net: driver: bridge driver_opts: com.docker.network.enable_ipv6: "false" com.docker.network.bridge.name: "back" ipam: driver: default config: - subnet: 11.0.0.0/24 gateway: 11.0.0.1 

希望有所帮助。