Docker 官方文档翻译

Docker 官方文档翻译

docker-compose 概述

docker
compose 是利用docker来运行多个容器的工具。利用compose 在一个文件中定义多个容器,然后利用一个单独的命令,可以执行你所想做的任何事情。
compose 能较好的作为开发环境的假设,服务器脚手架以及Ci方面的应用。我们不推荐使用在生产环境中。
使用compose 需要一下三个步骤:
1.在Dockerfile中定义你的应用环境,一边在任何地方重建环境
2.在docker-compose.yml中定义你的多种服务,以组成应用环境,并在单独的容器中一起运行。
3.最后执行docker-compose up 启动和运行你的整个应用
一个docker-compose.yml如下

web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
redis:
image: redis

compose 有如下命令来管理应用的整个生命周期

  • Start, stop and rebuild 服务
  • 查看镜像的运行状态
  • 查看服务日志
  • 运行一次性命令

docker-compose快速上手

利用一个简单python web 应用来,大体上了解下compose 。你需要了解一点点,或者完全不熟悉python也是可以的。

安装

首先,安装docker 和 compose。
接下来,建立项目所在目录。

$ mkdir composetest
$ cd composetest

进入目录,创建app.py,一个简单的web应用利用Flask framework,来记录访问的次数在redis缓存中。不要担心你没有安装redis,你只需要关心在你的docker 文件中是否定义了redis服务即可。
app.py的脚本代码如下:

from flask import Flask
from redis import Redis

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)

接下来定义phthon 依赖在requirements.txt文件中:

flask
redis

创建docker镜像

现在我们来创建一个应用依赖的镜像容器。你可以制定如何建立一个镜像利用Dockerfile:

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

这个脚本告诉docker 我们要执行如下操作:

  • 从官方库中拉去一个python2.7的镜像
  • 在“.”当前目录中的 添加一个code目录
  • 设定工作目录为code
  • 安装python依赖
  • 设定一条容器启动时候的默认命令
    获取更多Dockerfile 的书写方式请访问Docker用户指引Dockerfile参照
    你可以运行如下命令来测试创建
docker build -t web .

定义服务

接下来利用docker-compose.yml 来定义一组服务

web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
redis:
image: redis

这里定义了两个服务

web

  • 在当前目录查找Dockerfile并执行
  • 将主机的5000 端口 转发给镜像的5000 端口
  • web 服务依赖redis 服务
  • 将code目录挂载在镜像中

redis

  • 从Docker Hub上拉去redis镜像

建立和运行compose

现在我只需要执行 docker-compose up 就可以从官方拉去我们设定好的镜像了。
如果你是用了 Docker Machine 你可以使用 docker-machine ip MACHINE_VM 就能获取docker的ip。
如果你没有使用Boot2docker,你可以使用 http://0.0.0.0:5000 来访问你的web 应用。
你会得到如下返回
Hello World! I have been seen 1 times.
刷新会增加次数
如果你想让docker 后台运行,请家参数 -d
可以利用docker-compose ps查看运行中的镜像
docker-compose run 允许你执行一条命令在你的镜像中,比如你可以执行如下命令

$ docker-compose run web env

更多请参考 docker-compose –help
当你想停止docker 镜像是可以执行

$ docker-compose stop

至此你已经看到了compose的整个工作流程
更多内容敬请期待

原文地址:https://www.cnblogs.com/biggerCoder/p/4829385.html