创建一个简单的应用程
这个例子来自官方文件。假设你有一个使用 redis 作为后端的 python 应用程序。写完 Dockerfile
之后,创建一个 docker-compose.yml
文件,如下所示:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
然后运行 docker-compose up
将设置整个应用程序包括:python app 和 redis。
version: '2'
是版本泊坞窗,撰写文件语法services:
是描述要运行的服务的部分web:
和redis:
是要启动的服务的名称,它们的内容描述了 docker 应该如何为这些服务启动容器depends_on
意味着 web 与 redis 的依赖关系,因此 docker-compose 首先启动redis
容器,然后启动 web 容器。然而,在启动web
容器之前,docker-compose
不要等到redis
容器准备就绪。要实现这一点,你必须使用一个脚本来延迟应用程序服务器的启动或任何直到redis
容器可以执行请求的脚本。
还可以添加卷和网络部分。使用卷部分允许断开连接的卷,它可以独立于 docker compose 服务部分生存。网络部分有类似的结果。
服务的 redis 部分必须调整如下:
redis:
image: redis
volumes:
- redis-data:/code
networks:
-back-tier
接下来,将以下部分添加到 docker compose 版本 2 文件的底部。
volumes:
# Named volume
redis-data:
driver: local
networks:
back-tier:
driver: bridge
redis-data
提供服务部分的可访问标签。driver:local
将卷设置为本地文件系统。
back-tier
将网段标签设置为可在服务部分中作为桥接访问。