Docker Compose 简介
让我们从一个简单的基于python的多容器应用程序开始。这个示例应用程序由一个Web前端,用于缓存的Redis和作为我们数据库的Postgres组成。使用Docker,Web前端,Redis和Postgres都在单独的容器中运行。
您可以使用Docker Compose定义本地开发环境,包括环境变量,需要访问的端口以及要挂载的卷。一切都docker-compose.yml
在docker-compose
CLI中定义的中定义。
以下是docker-compose.yml
该应用程序的:
1 | version: '2' |
网络服务
第一部分定义了Web服务。它打开端口5000,设置在.env中定义的环境变量,并将本地代码目录安装为卷。
1 | services: |
数据库服务
下一个服务是Postgres数据库,它将打开端口5432,并在Docker Hub上使用最新的官方Postgres映像。
1 | db: |
Redis服务
本部分定义了我们的Redis服务,该服务打开端口6379,并使用Docker Hub上的官方Redis映像。
1 | redis: |
现在已经在中定义了本地开发环境docker-compose.yml
,您可以使用一个命令启动所有这三个服务:
1 | $ docker-compose up |
以下命令确认所有三个容器都在运行:
1 | $ docker ps |
Docker Compose的好处
使用Docker并使用Docker Compose定义本地开发环境可为您带来许多好处:
- 通过在Docker容器中运行Redis和Postgres,您不必在本地计算机上安装或维护软件
- 您可以将整个本地开发环境检入到源代码管理中,从而使其他开发人员可以更轻松地在项目上进行协作
- 您可以使用一个命令启动整个本地开发环境:
docker-compose up