概述
Docker Compose提供一个简单的基于YAML配置语言,用于描述和组装多容器的分布式应用。 使用docker定义和运行复杂的应用,使用compose,可以在一个文件里,定义多容器的应用。只需要三步即可完成一个应用的创建。
- Dockerfile定义app的运行环境
- docker-compose.yml定义组成app的services
- run
docker-compose up
环境搭建
系统:ubuntu 14.04
curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
django应用测试
Dockerfile
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
requirements.txt
<span style="font-size:10px;">Django
psycopg2</span>
服务配置docker-compose.yml
<span style="font-size:12px;">db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8887
volumes:
- .:/code
ports:
- "8887:8887"
links:
- db
构建工程
docker-compose run web django-admin.py startproject composedjango .
连接数据库, 修改composedjango/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}
运行
$ docker-compose run web python manage.py syncdb
启动应用
docker-compose up
至此,通过docker compose就实现了一个简单的Django应用,可以通过网页就行访问。ip:8887