2022-05-25
运维
00
请注意,本文编写于 836 天前,最后修改于 110 天前,其中某些信息可能已经过时。

目录

Docker Compose
1、简介
2、安装方式1(通过curl)
3、安装方式2(推荐:手动安装)
4、测试示例
1)为项目创建一个目录:
2)在项目目录中创建一个名为的文件app.py并将其粘贴到:
3)在您的项目目录中创建另一个名为的文件requirements.txt并将其粘贴到:
4)创建 Dockerfile
5)在 Compose 文件中定义服务
6)使用 Compose 构建并运行您的应用程序
7)测试
8)停止

Docker Compose

Docker Compose

1、简介

Docker Compose来轻松高效的管理容器,定义运行多个容器。
Compose是Docker官方的开源项目,需要安装
DockerFile让程序在任何地方运行。web服务、redis、mysql多个容器。
如果一个一个启动就需要run3个,而Compose只需要编写一个yml文件就可以启动多个。

version: "3.9" # optional since v1.27.0 services: web: build: . ports: - "8000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {}

docker-compose up 100个服务。

Compose:重要的概念。

  • 服务services, 容器。应用。(web、redis、mysql.…)
  • 项目project。一组关联的容器。博客。web

2、安装方式1(通过curl)

#下载地址 curl -L https://get.daocloud.io/docker/compose/releases/download/v2.5.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose #赋权 sudo chmod +x /usr/local/bin/docker-compose #验证 docker-compose version

3、安装方式2(推荐:手动安装)

  • docker-compose官网下载匹配版本

  • 下载docker-compose-linux-x86_64并上传linux

  • 执行如下命令

    mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose chmod +x docker-compose
  • 验证docker-compose --version

4、测试示例

官网教程

地址:https://docs.docker.com/compose/gettingstarted/ Docker Compose --> Getting started

1)为项目创建一个目录:

mkdir composetest cd composetest

2)在项目目录中创建一个名为的文件app.py并将其粘贴到:

import time import redis from flask import Flask app = 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)

3)在您的项目目录中创建另一个名为的文件requirements.txt并将其粘贴到:

flask redis

4)创建 Dockerfile

# syntax=docker/dockerfile:1 FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP=app.py ENV FLASK_RUN_HOST=0.0.0.0 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt EXPOSE 5000 COPY . . CMD ["flask", "run"]

这告诉 Docker:

  • 从 Python 3.7 映像开始构建映像。
  • 将工作目录设置为/code.
  • 设置命令使用的环境变量flask。
  • 安装 gcc 和其他依赖项
  • 复制requirements.txt并安装 Python 依赖项。
  • 向镜像添加元数据以描述容器正在侦听端口 5000
  • 将项目中的当前目录复制.到镜像中的workdir .。
  • 将容器的默认命令设置为flask run.

5)在 Compose 文件中定义服务

这个 Compose 文件定义了两个服务:web和redis.

version: "3.9" services: web: build: . ports: - "8000:5000" redis: image: "redis:alpine"

6)使用 Compose 构建并运行您的应用程序

docker-compose up

7)测试

http://localhost:8000

默认的服务名 文件名_服务名_num
多个服务器。集群。AB_num副本数量
服务redis服务=>4个副本。
集群状态。服务都不可能只有一个运行实例。弹性、10HA高井发。
kubectl service负载均衡。

8)停止

#在/usr/local/bin/docker-compose目录下执行 docker-compose down #暴力停止 ctrl+c

docker-compose小结 以前都是单个docker run启动容器。
docker-compose。通过 docker-compose 编写yaml配置文件、可以通过compose一键启动所有服务,停止。!

本文作者:酷少少

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!