Docker-compose入门教程

作者: Real_man | 来源:发表于2017-12-18 16:36 被阅读387次

    前言

    Docker-compose是一个定义和运行多个Docker应用的工具,你可以使用YMAL文件来配置你的服务,然后使用docker-compose命令,创建和启动所有你配置的的服务。compose可以在任何工作环境中使用,生产环境,开发环境,持续集成等等。


    Docker

    使用compose一般包括三个步骤:

    1. 使用Dockerfile定义App的环境,以便于可再次重复利用
    2. docker-compose.yml文件中定义服务,以便于多个Docker应用可以协作起来
    3. 最后,运行docker-compose up,然后compose回启动和运行整个App。

    操作

    确保你已经安装了Docker和Docker compose。

    设置
    1. 创建目录
    mkdir composetest
    cd composetest
    
    1. 创建app.py文件,python文件有严格的行缩进关系。如果缩进不一样会报错。
    from flask import Flask
    from redis import Redis
    
    app = Flask(__name__)
    redis = Redis(host='redis', port=6379)
    
    @app.route('/')
    def hello():
        count = redis.incr('hits')
        return 'Hello From Aihe! I have been seen {} times.\n'.format(count)
    
    if __name__ == "__main__":
        app.run(host="0.0.0.0", debug=True)
    
    1. 创建另外一个依赖文件requirements.txt,python的依赖关系。
    flask
    redis
    
    创建Dockerfile文件

    内容如下

    FROM python:3.4-alpine
    ADD . /code
    WORKDIR /code
    RUN pip install -r requirements.txt
    CMD ["python", "app.py"]
    
    在compose文件定义服务

    文件内容如下

    version: '3'
    services:
      web:
        build: .
        ports:
         - "5000:5000"
        volumes:
         - .:/code
    
      redis:
        image: "redis:alpine"
    
    

    这个文件包含两个服务,webredis
    web服务

    • Build 使用Dockerfile来构建镜像
    • Ports 主机转发5000端口到容器对应的5000端口
    • Volumes 挂载当前目录到容器内的/code目录下,我们可以直接修改本地文件,然后容器内会立即生效
    构建和运行app
    1. 在当前目录下运行docker-compose up
      当前目录结构为


      当前目录内容
    docker-compose up
    
    1. 在浏览器中输入http://localhost:5000/
    测试结果

    我们可以以修改app.py文件中return的内容,可以看到浏览器立即生效。

    额外

    1. 在配置的过程中,可能compose文件配置有错误,到底第一次无法启动服务。这时候重新构建服务。
    docker-compose build --no-cache
    
    1. 后台运行与停止compose服务
    docker-compose up -d
    docker-compose stop
    

    最后

    Docker确实给我们提供了极大的便利,使用的过程发现有以下好处

    • 本地环境无需更改,直接使用Docker容器做测试
    • 搭建集群直接使用容器,一台机器也可以完成

    这里简单的介绍了docker-compose的用法,希望能对大家有帮助。

    相关文章

      网友评论

        本文标题:Docker-compose入门教程

        本文链接:https://www.haomeiwen.com/subject/ldumwxtx.html