docker-compose 创建一个简单的应用程序
示例
此示例来自官方文档。假设您有一个使用redis作为后端的python应用程序。编写之后Dockerfile,创建一个docker-compose.yml像这样的文件:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis然后运行docker-composeup将设置整个应用程序,包括:pythonapp和redis。
version:'2'是docker-compose文件语法的版本
services:是描述要运行的服务的部分
web:并且redis:是服务的开始的名字,其内容描述泊坞窗应该如何启动这些服务的容器
depends_on暗示Web对Redis的依赖性,因此docker-compose首先启动redis容器,然后启动Web容器。但是,docker-compose不要等到redis容器准备好后再启动web容器。为此,您必须使用一个脚本来延迟应用程序服务器的启动或直到redis容器可以执行请求为止。
也可以添加卷和网络部分。使用volumes部分允许断开连接的卷,这些断开的卷可以独立于dockercompose服务部分使用。网络部分有类似的结果。
服务的redis部分必须像这样进行调整:
redis:
image: redis
volumes:
- redis-data:/code
networks:
-back-tier接下来,将以下部分添加到dockercompose版本2文件的底部。
volumes:
# Named volume
redis-data:
driver: local
networks:
back-tier:
driver: bridgeredis-data提供“服务”部分中的可访问标签。driver:local将卷设置为本地文件系统。
back-tier将网络部分标签设置为在桥接服务部分可访问。