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-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 将网络部分标签设置为在桥接服务部分可访问。