博客
关于我
docker学习笔记(六)docker-compose
阅读量:636 次
发布时间:2019-03-14

本文共 2404 字,大约阅读时间需要 8 分钟。

正确使用Docker Compose的基本指南

1. 什么是Docker Compose

Docker Compose 是 Docker 容器化应用的高级工具。它通过 YAML 文件定义和运行包含多个容器的 Docker 应用。通过 docker-compose up 命令,可以一次启动配置好的所有服务,无需手动拉取镜像或配置网络。

2..docker-compose文件实现的关键概念

  • 服务(Service): 服务表示应用中的容器。你可以配置多个容器实例,且镜像可以相同或不同。
  • 项目(Project): 项目由一组互相关联的容器组成,代表一个完整的业务单元。一个 YAML 文件定义了一个项目。

3. 使用Docker Compose的三大步骤

  • 校验应用环境,编写 Dockerfile 定义镜像。
  • 在 docker-compose.yml 定义服务(包括容器、网络等)。
  • 执行 docker-compose up 命令启动所有服务。
  • 4. 安装Docker Compose

    建议使用 pip安装,因为步骤简单且稳定:

    sudo pip install docker-composesudo ln -s /usr/bin/docker-compose /usr/local/bin/docker-compose

    这样安装后,运行以下命令查看版本:

    docker-compose --version

    5. Docker Compose实战示例

    5.1 准备工作

  • 创建项目目录,例如 tmp/test-compose。
  • 编写应用程序 app.py:
  • import timeimport redisfrom flask import Flaskapp = Flask(__name__)cache = redis.Redis(host='redis', port=6379)def get_hit_count():    retries = 5    while True:        try:            return cache.incr('hits')        except redis.exceptions.ConnectionError as exc:            if retries == 0:                raise exc            retries -= 1            time.sleep(0.5)@app.route('/')def hello():    count = get_hit_count()    return 'Hello World! I have been seen {} times.\n'.format(count)
    1. 创建 requirements.txt 文件:
    2. flaskredis

      5.2 编写Dockerfile

      FROM python:3.7-alpineWORKDIR /codeENV FLASK_APP app.pyENV FLASK_RUN_HOST 0.0.0.0RUN apt-get update && \    apt-get install -y --no-install-recommends gcc musl-dev linux-headers && \    rm -y --force-depends gcc musl-dev linux-headersCOPY requirements.txt requirements.txtRUN pip install -r requirements.txtCOPY . .CMD ["flask", "run"]

      5.3 编写 docker-compose.yml

      version: '3'services:  web:    build: .    ports:      - "5000:5000"    networks:      - app-net  redis:    image: redis:alpine    networks:      - app-net  app-net:    driver: bridge

      5.4 启动项目

      docker-compose up -d

      命令解释:

      • docker-compose 启动所有服务,使用 -d 后台运行。
      • 服务会自动生成镜像、拉取镜像、创建网络等。

      访问服务后可通过 http://localhost:5000 查看效果。

      5.5 常用命令示例

    3. 查看版本:
    4. docker-compose --version
      1. 启动服务:
      2. docker-compose up
        1. 在后台运行:
        2. docker-compose up -d
          1. 查看运行状态:
          2. docker-compose ps
            1. 查看镜像:
            2. docker-compose images
              1. 停止服务:
              2. docker-compose stop
                1. 删除服务:
                2. docker-compose down
                  1. 专luk扩容:
                  2. docker-compose up --scale web=5 -d
                    1. 查看日志:
                    2. docker-compose logs [service_name]

                      6. 其他资源

                      6.1 YAML 模板参考

                      • 端口配置:
                        ports:  - "80:80"
                      • 卷配置:
                        volumes:  - ./cache:/tmp/cache

                      6.2 常见操作

                      • 拉取镜像:
                        docker-compose pull
                      • 构建镜像:
                        docker-compose build
                      • 删除旧镜像:
                        docker-compose down --remove-orphans

                      通过以上命令,可以轻松管理和扩容你的 Docker 应用,提高开发效率。

    转载地址:http://wiooz.baihongyu.com/

    你可能感兴趣的文章
    python列表对应元素合并为列表及判断一个列表是几维
    查看>>
    python+flask计算机毕业设计高校校园线上跳蚤市场的系统设计(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校疫情防控管理平台(程序+开题+论文)
    查看>>
    Python+Jenkins+Allure Report接口自动化测试持续集成
    查看>>
    python+locust电商全流程性能测试
    查看>>
    Python函数运行的可执行文件的终端输出如何以一般方式静音?
    查看>>
    Python+Pytest+Allure+Git+Jenkins接口自动化框架
    查看>>
    python+pytest接口自动化 —— 参数关联
    查看>>
    python+pytest接口自动化 —— 参数关联
    查看>>
    python+pytest接口自动化 —— 自动化用例编写思路 (使用pytest编写一个测试脚本)
    查看>>
    Python+pytest接口自动化之cookie绕过登录(保持登录状态)
    查看>>
    python+pytest接口自动化:接口测试
    查看>>
    Python+requests+unittest执行接口自动化测试详情
    查看>>
    Python+requests+unittest执行接口自动化测试详情
    查看>>
    python+requests+unittest执行自动化接口测试!
    查看>>
    Python+Requests编码识别Bug
    查看>>
    python函数编写_[零基础学python]传说中的函数编写条规
    查看>>
    Python+selenium —— UI自动化之鼠标操作
    查看>>
    python函数注释,参数后面加冒号:,函数后面的箭头→是什么?
    查看>>
    Python+Selenium+Threading进行兼容性测试
    查看>>