博客
关于我
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、IMAP 和 GMail.将消息标记为已查看
    查看>>
    python一个一个获取迭代器的元素
    查看>>
    python一维数组 提取_python – 如何从numpy中的1维数组中提取零维切片
    查看>>
    python三大库之--numpy(一)
    查看>>
    python三大库之--numpy(二)
    查看>>
    python上的字无效字符_标识中的无效字符
    查看>>
    python下用decode和encode 中文转码
    查看>>
    Python下调用Linux的Shell命令
    查看>>
    Python接口自动化测试实战系列
    查看>>
    python下载_安装_配置_以及第一行python程序---python工作笔记009
    查看>>
    Python不协调机器人消息.内容
    查看>>
    Python与C#之间内存共享互传信息
    查看>>
    python与c语言混合编程_你试过C语言和Python一起混合编程吗?两者相加不是已经无敌了!...
    查看>>
    python与excel
    查看>>
    Python与Excel的完美邂逅:深入浅出,手把手教你轻松玩转Excel数据操作
    查看>>
    python与flask_Python编程中flask的简介与简单使用
    查看>>
    python与图灵机器人交互(WXPY版本)
    查看>>
    python与运算符_python运算符
    查看>>
    python两个列表获取交集,并集,差集
    查看>>