Dou*_*gui 14 docker docker-compose
我有这两个容器:
api:
image: social-learning
ports:
- "3000:3000"
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- ../api:/app
expose:
- "3000"
web:
image: social-learning-frontend
ports:
- "4200:4200"
- "9000:9000"
command: ember serve -p 4200
volumes:
- .:/app
links:
- api
expose:
- "3000"
Run Code Online (Sandbox Code Playgroud)
当我做:
docker exec `docker ps -a | grep 'frontend_web_1' | awk '{print $1 }'` curl http://localhost:3000
Run Code Online (Sandbox Code Playgroud)
我总是拒绝连接.我可以通过其IP访问另一个容器,但我更喜欢将其作为localhost.
可能吗?
这里似乎有些混乱.
看起来您正在尝试登录Web容器并使用localhost地址访问api容器?这不会起作用.
最好的解决方案就是使用您声明的链接; 在Web容器中,您应该能够做到curl http://api:3000.这是有效的,因为Docker /etc/hosts为您添加了api容器的条目.
访问途径localhost只能在发布容器端口的Docker主机上运行.我想你可以通过Docker桥(例如curl 172.17.42.1:3000)从容器内访问Docker主机,但这似乎是毫无意义的复杂和脆弱.
| 归档时间: |
|
| 查看次数: |
6657 次 |
| 最近记录: |