【Docker】多个容器之间的协作与Docker Compose
首先
如果构建Web应用程序系统,通常会将Web应用程序本身与所需的数据库等进行协作。如果规模较小,可以手动协调和管理Docker容器,但随着要协作的应用程序增加,会变得非常繁琐。
因此,可以在一个YML文件中定义多个容器,并使用Docker Compose来批量构建、协作和管理Docker容器。下面我们将了解如何使用Docker在Django中将DPostgreSQL与Web应用程序协作的环境。
Docker Compose的步骤
安装Docker Compose。
编写Dockerfile。
一个简单的文本文件,可以汇总描述Docker容器的配置内容。
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
编写3个requirements.txt文件。
一份描述应用所需的Python环境的文本文件。
Django
psycopg2
编写4个docker-compose.yml文件。
用于协同应用程序的文件。表示结构化数据的方法。
version: '2'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
使用docker-compose命令创建Django项目。
$ docker-compose run web django-admin.py startproject composeexample .
编辑项目内的settings.py文件。
DATABASES = {
#追加
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}
执行docker-compose up命令。
$ docker-compose up