我正在一个有2个docker compose文件的项目中。 一方面,我的堆栈上装有Rails服务器。
version: '3'
services:
web:
entrypoint: ["./docker-entrypoint.sh"]
build:
context: .
dockerfile: <MY FILE>
command: bundle exec rails s -b 'ssl://0.0.0.0?key=/app/ssl/server.key&cert=/app/ssl/server.crt'
volumes:
- .:/app
ports:
- "443:3000"
stdin_open: true
tty: true
networks:
- ekoma
networks:
ekoma:
driver: bridge
另一方面,我有一个wordpress实例
version: '3'
services:
wordpress:
image: wordpress:latest
ports:
- 8888:80
networks:
- app_ekoma
networks:
app_ekoma:
external:
name: app_ekoma
我正在简化撰写文件,但是如果需要,我可以提供更多文件。
出于某种原因,在我的wordpress实例中,我可以使用“网络”主机,甚至可以发起curl调用:
curl web:3000
但是请求挂起并且没有完成。
这也可能是Rails服务器的问题,但我将其用作API,并且从网络外部,连接到localhost:443都没有问题。
感谢您的光临,任何想法都将不胜感激:)
答案 0 :(得分:0)
您可以创建一个 User-defined Bridge network,然后将您的两个容器连接到您的桥接网络。
创建桥:
>> docker network create --driver bridge my-user-defined-bridge-net
然后进行健全性检查以查看与它相关的内容(现在不应连接任何内容):
>> docker network inspect my-user-defined-bridge-net
向下滚动输出,直到看到 Containers 道具,其中列出了连接的容器。现在,它应该是空的:
"Containers": {}
接下来,在您的每个 docker-compose 文件中,将容器连接到我们刚刚创建的网桥。
您的第一个文件将是:
version: '3'
services:
web:
container_name: container_one
entrypoint: ["./docker-entrypoint.sh"]
build:
context: .
dockerfile: <MY FILE>
command: bundle exec rails s -b 'ssl://0.0.0.0?key=/app/ssl/server.key&cert=/app/ssl/server.crt'
volumes:
- .:/app
ports:
- "443:3000"
stdin_open: true
tty: true
networks:
- ekoma
networks:
ekoma:
external:
name: my-user-defined-bridge-net
你的第二个文件是:
version: '3'
services:
wordpress:
container_name: container_two
image: wordpress:latest
ports:
- 8888:80
networks:
- app_ekoma
networks:
app_ekoma:
external:
name: my-user-defined-bridge-net
使用这些新的 docker-compose 文件重新启动两个容器并检查网桥的状态:
>> docker network inspect my-user-defined-bridge-net
现在应该显示 "Containers"
道具
"Containers": {
"asdfasdfasdfasdfasdfasdfasdfasdfasdf1324654a1sd65fa56sdf": {
"Name": "container_one",
"EndpointID": "51asdf5sd651as65d1f1a65sdf1a63sd5f1asd65fa56sdf56asd6f5a65s1df",
"MacAddress": "02:42:ac:1d:00:02",
"IPv4Address": "172.29.0.2/16",
"IPv6Address": ""
},
"a6s51dfa65sd1fas6d5f1a6s5df0asd65f0a6sd5f41asd658f4sdf": {
"Name": "container_two",
"EndpointID": "6a5sdfa65sd1fa6s5df1as6d51fas6d51fa6s5d1f6a5sd16sd6a1s",
"MacAddress": "02:42:ac:1d:00:03",
"IPv4Address": "172.29.0.3/16",
"IPv6Address": ""
}
},