【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
bannerAds