Docker Compose 简介

Docker 进阶

Mike Metzger

Data Engineering Consultant

什么是 Docker Compose?

  • Docker 的额外命令行工具
  • 定义并管理多容器应用
  • 在单个文件中指定容器、网络和数据卷
    • compose.ymlcompose.yaml
    • 旧版文件可能名为 docker-compose.yaml
  • 便于分享/演示应用
Docker 进阶

compose.yaml 示例

# 定义服务
services:

# 按名称定义容器 webapp: image: "webapp"
# 可选:定义端口映射 ports: - "8000:5000"
# 定义其他所需容器 redis: image: "redis:alpine"
Docker 进阶

启动应用

  • docker compose up
    • 旧系统使用 docker-compose up
    • docker compose -f <yaml> up
    • docker compose up -d
$ docker compose up

[+] Running 2/0 ✔ Network composetest_default Created ✔ Container composetest-redis-1 Created 0.0s ✔ Container composetest-web-1 Created 0.0s Attaching to redis-1, web-1 redis-1 | 1:C 11 Mar 2024 04:09:51.754 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo web-1 | * Serving Flask app 'app.py' web-1 | * Running on http://127.0.0.1:5000
Docker 进阶

查看应用状态

  • docker compose ls
$ docker compose ls

NAME STATUS CONFIG FILES webapp running(2) /webapp/docker-compose.yml
Docker 进阶

停止应用

  • docker compose down
    • docker-compose down
    • docker compose -f <yaml> down
$ docker compose down

[+] Running 3/3 ✔ Container composetest-redis-1 Removed 0.1s ✔ Container composetest-web-1 Removed 10.1s ✔ Network composetest_default Removed 0.1s
Docker 进阶

让我们来练习!

Docker 进阶

Preparing Video For Download...