您的位置:首页 > 运维架构 > Docker

Docker学习笔记 — Compose简介、安装与简单使用

2015-03-15 18:06 1256 查看

简介

Docker Compose是在使用Docker容器部署分布式应用时的工具,可以定义哪个容器运行哪个应用。使用Compose,你只需定义一个多容器应用的yml文件,然后使用一条命令即可部署运行所有容器。



安装Compose

下载安装最新版的docker-compose

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


使用docker-compose –version验证安装是否成功。

使用方法

我们以官网上的简单示例来看看docker compose的使用方法。

准备

首先创建项目文件夹

mkdir composetest
cd composetest


创建app.py,使用flash web服务框架,数据库使用redis。

from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')

if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)


创建requirements.txt文件,定义项目依赖的python包。

flask
redis


创建镜像

使用dockerfile创建镜像,dockerfile文件如下:

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt


在python:2.7基础镜像上安装依赖的python软件包,并将代码挂载到镜像里。

定义服务

使用docker-compose.yml文件定义提供的服务。

web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
redis:
image: redis


定义了两个服务:

- web服务:该容器从当前文件夹的dockerfile创建,并运行
python app.py
命令;将web容器内部的5000端口映射到host的5000端口;挂载当前文件夹到容器内部的/code文件夹,并将web容器与redis容器连接;

- redis服务:该容器直接由官方的redis镜像创建。

启动

使用命令
docker-compose up
启动,首先将启动redis容器,然后启动web容器,再将两者连接起来。

$ docker-compose up
Pulling image redis...
Building web...
Starting composetest_redis_1...
Starting composetest_web_1...
redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3
web_1   |  * Running on http://0.0.0.0:5000/[/code] 
使用
docker-compose up -d
在后台启动服务,使用
docker-compose ps
命令查看启动的服务。

$ docker-compose up -d
Starting composetest_redis_1...
Starting composetest_web_1...
$ docker-compose ps
Name                 Command            State       Ports
-------------------------------------------------------------------
composetest_redis_1   /usr/local/bin/run         Up
composetest_web_1     /bin/sh -c python app.py   Up      5000->5000/tcp`


使用
docker-compose stop
停止服务。

YML文件格式

参考YAML 模板文件

参考资料:

Docker官方文档
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: