小编Den*_*oef的帖子

Docker compose 端口映射,主机端口 != 容器端口

如何curl http://barfoo:8002在不更改 docker 文件的情况下从 foobar-container 开始工作?

我有以下撰写文件:

version: '3'
services:
  foobar:
    build:
      context: ./foobar
    ports:
      - 8001:80
    depends_on:
      - barfoo
  barfoo:
    build:
      context: ./barfoo
    ports:
      - 8002:80
Run Code Online (Sandbox Code Playgroud)

我将以下内容添加到我计算机上的主机文件中

127.0.0.1     foobar
127.0.0.1     barfoo
Run Code Online (Sandbox Code Playgroud)

现在我用docker-compose up.

当我在终端上执行以下操作时,这在逻辑上可以正常工作,没有任何问题: curl http://barfoo:8002

当我从 foobar 容器 ( docker-compose exec foobar /bin/bash) 中的 Bash 执行相同操作时Failed to connect to barfoo port 8002: Connection refused,如果我使用curl http://barfoo:80它,我会得到。

原因是我想模拟类似生产的情况,在生产中不需要端口,因为它们使用不同的主机名并且都可以直接使用端口 80

docker docker-compose docker-networking

5
推荐指数
1
解决办法
5148
查看次数

标签 统计

docker ×1

docker-compose ×1

docker-networking ×1