Docker Compose Quick Start
对 官网 Docker Compose Quick Start 的一些简单记录
用 Docker Compose 来解决什么问题 ?
比如:使用 docker 来构建 redis 哨兵模式来学习,构建 ELK ,或者提供一个当前系统的最小可用版本提供其他组测试对接用
例子
创建测试用的项目
1 | mkdir composetest |
新建 app.py 到文件夹中
1 | import time |
连接同一个 network 环境下名为 redis 的redis容器服务,git_hit_count() 是对 redis 服务的重试连接
新建另外一个文件 requirements.txt
1 | flask |
新建 Dockerfile 文件
1 | # syntax=docker/dockerfile:1 |
新建 compose.yaml
1 | services: |
以上定义了2个服务:
- web 服务来自由 Dockerfile 构建镜像。
- redis 服务
build and run compose
在当前目录下执行
1 | docker compose up |
检验服务情况,访问 localhost:8000
1 | Hello World! I have been seen 1 times. |
停止应用程序,方法是在第二个终端中的项目目录中运行 docker compose down,或者在启动应用程序的原始终端中按 CTRL+C 停止应用程序。
使用 Compose Watch
修改 compose.yaml 文件,添加 watch 用来预览正在运行的 Compose 服务,在编辑和保存代码时会自动更新:
1 | services: |
每当文件发生更改时,Compose 都会将文件同步到容器内的相应位置。复制完成后,捆绑器会更新正在运行的应用程序,而无需重新启动。
输入 docker compose watch 或 docker compose up --watch 来构建和启动应用程序并启动文件监视模式
修改 app.py 并重新访问 localhost:8000
1 | @app.route('/') |
拆分服务
将 redis 服务定义从 compose.yaml 中拆分出来
新建 infra.yaml
1 | services: |
在 compose.yaml 中引入
1 | + include: |
运行 docker compose up 命令,使用更新后的 Compose 文件构建应用程序并运行它。你应该会在浏览器中看到 Hello world 消息
其他命令
运行 docker compose up 命令,使用更新后的 Compose 文件构建应用程序并运行它。你应该会在浏览器中看到 Hello world 消息
1 | docker compose up -d |
使用 docker compose up -d 启动了 Compose,请在使用完后停止服务
1 | docker compose stop |
可以使用 docker compose down 命令关闭所有内容,彻底删除容器