执行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
答案 0 :(得分:2)
默认情况下,Compose会为您的应用设置单个网络。
有关详细信息,请参阅此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