• 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的整个工作流程
    更多内容敬请期待

  • 相关阅读:
    软件杯-题目和插件
    基于《河北省重大技术需求征集系统》的可用性和可修改性战术分析
    基于淘宝网的系统质量属性六大场景
    架构漫谈读后感
    06掌握需求过程阅读笔记之一
    大道至简读后感以及JAVA伪代码
    K8S学习笔记
    事务的七种传播类型、及案例
    香港身份证规则
    oracle函数
  • 原文地址:https://www.cnblogs.com/biggerCoder/p/4829385.html
Copyright © 2020-2023  润新知