Docker可通过docker-compose.yaml文件做容器编排,文件中列出了容器是如何创建和协同工作的。一个docker-compose.yaml文件可以简单理解成多个docker run命令按照特定的格式列到了一个文件里面。
下面的例子展示了通过传统方式创建子网、创建my_mongodb容器、创建my_mongodb_express容器的过程。

(1)下面展示的对应的docker-compose.yaml文件的写法,左右是非常工整的对应关系。
(2)Docker会为每一个compose文件创建一个子网,文件中的容器会自动加入子网中。
(3)docker compose还可以定义容器的启动顺序

#docker-compose.yaml
services:
my_mongodb2:
image: mongo
environment:
MONGO_INITDB_ROOT_USERNAME: name
MONGO_INITDB_ROOT_PASSWORD: pass
my_mongodb_express2:
image: mongo-express
ports:
- "8082:8081"
environment:
ME_CONFIG_MONGODB_SERVER: my_mongodb2
ME_CONFIG_MONGODB_ADMINUSERNAME: name
ME_CONFIG_MONGODB_ADMINPASSWORD: pass
depends_on:
- my_mongodb2
通过docker compose up -d命令执行compose文件

发现两个容器已经在运行了

通过8082端口,正常访问mongo-express界面

执行compose文件创建并启动容器:docker compose up -d
停止并删除容器:docker compose down
停止容器:docker compose stop
启动容器:docker compose start