创建一个简单的应用程

这个例子来自官方文件。假设你有一个使用 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 将网段标签设置为可在服务部分中作为桥接访问。