博客
关于我
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/

    你可能感兴趣的文章
    power English (3)原文
    查看>>
    POWER ENGLISH(7)- repetition
    查看>>
    powerbi 一张表在另外一张表中出现的数量_PowerBi之初步学习笔记
    查看>>
    QGIS怎样设置简体中文以及新建可编辑的多边形的图层
    查看>>
    PowerBuilder 使用自定义事件触发键盘Enter事件
    查看>>
    PowerCreatorCMS UploadResourcePic 任意文件上传漏洞复现
    查看>>
    PowerDesigner 使用的一些技巧(转)
    查看>>
    QGIS在Windows上下载安装与建立空间数据库连接
    查看>>
    PowerDesigner165安装婆姐汉花教程
    查看>>
    PowerDesigner使用教程:设置注释、默认值属性
    查看>>
    PowerDesigner使用教程:不显示背景网格
    查看>>
    PowerDesigner使用教程:创建数据模型以及导出
    查看>>
    PowerDesigner使用教程:右侧工具栏显示/隐藏
    查看>>
    PowerDesigner使用教程:导出sql文件以及解决中文乱码问题
    查看>>
    PowerDesigner使用教程:时间字段设置
    查看>>
    PowerDesigner使用教程:给字段添加唯一约束
    查看>>
    QGIS中怎样设置图层样式并导出地图样式
    查看>>
    PowerDesigner使用笔记
    查看>>
    QGIS中怎样实现数据坐标系转换
    查看>>
    PowerDesigner学习--基本步骤
    查看>>