博客
关于我
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 SOCKS5代理客户端HTTPS
    查看>>
    Python Soc网络分析:通过使用函数迭代列表来计算机会网络
    查看>>
    python转换已转义的字符串
    查看>>
    Python Sphinx自动摘要:成员函数的自动列表
    查看>>
    Python SQL和NoSQL数据库操作实战
    查看>>
    python stdout flush_sys.stdout.flush()方法的用法
    查看>>
    python string 运算
    查看>>
    Python str与bytes之间的转换
    查看>>
    Python subprocess ffmpeg
    查看>>
    python subprocess Permission denied Errno 13
    查看>>
    Python subprocess.call - 将变量添加到 subprocess.call
    查看>>
    Python Subprocess.Popen 从一个线程
    查看>>
    Python subprocess.Popen 作为 Windows 上的不同用户
    查看>>
    Python转换PPT为PDF
    查看>>
    Python subprocess.Popen() 等待完成
    查看>>
    Python sum 二维列表中具有相同第一个值的元素
    查看>>
    Python Sympy模块NoConversion:收敛到根失败;请尝试n<;15或MaxSteps>;50
    查看>>
    Python sys.MODULES包含尚未导入的模块
    查看>>
    python sys模块使用
    查看>>
    Python tarfile、zipfile解压模块讲解
    查看>>