在执行docker-compose up
之后,它将启动容器。
当我执行docker ps
时,我得到以下信息,它告诉我容器正在运行。但是,当我执行docker network inspect bridge
时,结果显示出docker0
桥中没有容器。
然后,当我执行docker run meanchat_myserver
时,它实际上确实显示在docker0
上,并且我还获得了服务器正在port 3000
上运行的数据。
我不能通过使用docker-compose
获得。
我在这里做错了什么?
我读到的是,当我使用docker0
时,只能引用IP来连接其他容器,而不能引用名称。我可以假定ip在容器上没有变化,并且在将应用程序部署到生产环境中时不会出现问题吗?
02cf08b1c3da d57f06ba9c68 "npm start" 33 minutes ago Up 33 minutes 4200/tcp meanchat_client_1
e257063c9e21 meanchat_myserver "npm start" 33 minutes ago Up 33 minutes 3000/tcp meanchat_myserver_1
02441c2e43f5 e114a298eabd "npm start" About an ago Up 33 minutes 0.0.0.0:80->80/tcp meanchat_nginx_1
88d9841d2553 mongo "docker-entrypoint..." 3 hours ago Up 3 hours 27017/tcp meanchat_mongo_1
撰写
version: '3'
services:
# Build the container using the client Dockerfile
client:
build: ./
# This line maps the contents of the client folder into the container.
volumes:
- ./:/usr/src/app
myserver:
build: ./express-server
volumes:
- ./:/usr/src/app
depends_on:
- mongo
nginx:
build: ./nginx
# Map Nginx port 80 to the local machine's port 80
ports:
- "80:80"
# Link the client container so that Nginx will have access to it
mongo:
environment:
- AUTH=yes
- MONGO_INITDB_ROOT_USERNAME=superAdmin
- MONGO_INITDB_ROOT_PASSWORD=admin123
- MONGO_INITDB_DATABASE=d0c4ae452a5c
image: mongo
volumes:
- /var/mongodata/data:/data/db
最佳答案
有关更多详细信息,请引用此link。
这意味着默认情况下,带有containers
的compose
不会位于默认bridge network
中。
您可以通过命令检查containers
和compose
使用的网络。
docker inspect $container_name -f "{{.NetworkSettings.Networks}}"
但是,如果您希望
containers
使用默认的bridge network
,则可以使用network_mode。services:
service_name:
# other options....
network_mode: bridge