此示例来自官方文档。假设您有一个使用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' 是docker-compose文件语法的版本
services: 是描述要运行的服务的部分
web:并且redis:是服务的开始的名字,其内容描述泊坞窗应该如何启动这些服务的容器
depends_on暗示Web对Redis的依赖性,因此docker-compose首先启动redis容器,然后启动Web容器。但是,docker-compose不要等到redis容器准备好后再启动web容器。为此,您必须使用一个脚本来延迟应用程序服务器的启动或直到redis容器可以执行请求为止。
也可以添加卷和网络部分。使用volumes部分允许断开连接的卷,这些断开的卷可以独立于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 将网络部分标签设置为在桥接服务部分可访问。