Docker compose操作指南
1.安装compose
(1)首先需要将docker升级到1.3以上的版本,升级方法如下:
$sudo apt-get install apt-transport-https#添加https 支持 |
(2)升级docker版本后,通过以下命令安装compose:
$curl -Lhttps://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname-s`-`uname -m` > /usr/local/bin/docker-compose $chmod +x /usr/local/bin/docker-compose |
如果出现"Permissiondenied"错误,则需要在开始时 运行sudo–i,用root权限执行上述命令。
(3)查看compose是否安装成功:
$docker-compose --version |
2创建一个python应用
(1)为项目创建一个目录:
$ mkdir composetest $ cd composetest |
(2)在composetest目录下,创建python应用的app.py文件,app.py文件如下:
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) |
在 app.py文件中定义了一个简单地利用Flask框架和Redis的web应用。
(3)定义这个Python应用容器的依赖文件requirements.txt:
flask redis |
3.创建Python应用的docker镜像:
(1)创建一个包含python应用及其依赖的docker镜像,其Dockerfile如下:
FROM python:2.7 ADD . /code WORKDIR /code RUN pip install -r requirements.txt |
4.定义服务Defineservices
(1)使用docker-compose.yml定义容器应用的服务配置:
web: build:. command:python app.py ports: -"5000:5000" volumes: -.:/code links: -redis redis: image:redis |
在上述的 docker-compose.yml文件中定义了两种服务:
web:从当前目录的dockerfile文件进行构建,并且将其作为Volume挂载到容器的/code目录中,然后通过pythonapp.py来启动Flask应用。最后将容器的5000端口暴露出来,并将其映射到主机的5000端口上。其中,使用links来定义容器之间的依赖关系,表示web容器依赖于Redis容器。
redis:直接使用DockerHub上的官方镜像来提供所需的Redis服务支持,会直接从dockerhub上进行下载。
5.使用compose构建并运行定义的python应用
(1)执行compose启动命令,启动命令如下:
$ docker-compose up |
通过compose启动成功后,会最先开始构建Redis容器,紧随其后则构建Python容器,并生成应用的镜像;然后,DockerCompose会并行地启动全部容器,应用容器会通过compose与被依赖容器进行通信,实现该应用的部署。
6.帮助
如需要查看dockercompose更多的命令,可执行help命令:
$docker-compose --help |
注:此操作指南主要参考dockercompose官方文档.