我该如何在不更改docker文件的情况下,使得从foobar容器中执行curl http://barfoo:8002
命令能够正常工作?
我有以下compose文件:
version: '3'
services:
foobar:
build:
context: ./foobar
ports:
- 8001:80
depends_on:
- barfoo
barfoo:
build:
context: ./barfoo
ports:
- 8002:80
我在我的电脑上的 hosts 文件中添加了以下内容。
127.0.0.1 foobar
127.0.0.1 barfoo
现在我通过
docker-compose up
命令开始了这个项目。当我在终端执行以下命令时,逻辑上没有任何问题:
curl http://barfoo:8002
但是,当我从 foobar 容器的 Bash 中执行相同的命令 (docker-compose exec foobar /bin/bash
) 时,它会显示 Failed to connect to barfoo port 8002: Connection refused
。如果我使用 curl http://barfoo:80
,它可以正常工作。原因是我想模拟生产环境,生产环境中不需要端口号,而是使用不同的主机名,并且都可以直接使用端口 80。