脚本宝典收集整理的这篇文章主要介绍了10 Docker Compose,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
平常通过Dockerfile 文件生成一个镜像来使用,但是在微服务架构下,效率非常低,很难处理依赖管理,但是可以使用Docker Compose 来轻松高效的管理容器,定义运行多个容器。
Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,可以使用YamL文件来配置应用程序的服务。然后,使用一个命令,从配置中创建并启动所有服务。可以在任何环境使用Compose,一般使用Compose 主要有三个步骤:
version: "3.9" # optional since v1.27.0services: web: build: . ports: - "5000:5000" volumes: - .:/code - LOGvolume01:/VAR/log links: - redis redis: image: redisvolumes: logvolume01: {}
sudo curl -L "https://gIThub.COM/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
mkdir composetest cd composetest
vim 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)
vim requirements.txt
flaskredis
在此步骤中,您将编写一个构建Docker映像的Dockerfile。该图像包含Python应用程序所需的所有依赖关系,包括Python本身。
vim Dockerfile
# syntax=docker/dockerfile:1From python:3.7-alpineWORKDIR /codeenv FLASK_APP=app.pyENV FLASK_RUN_HOST=0.0.0.0RUN apk add --no-cache gcc musl-dev linux-headersCOPY requirements.txt requirements.txtRUN pip install -r requirements.txtExpOSE 5000COPY . .CMD ["flask", "run"]
这告诉Docker:
从Python 3.7映像开始构建映像。
将工作目录设置为/code
。
设置flask
命令使用的环境变量。
安装gcc和其他依赖项
复制requirements.txt
并安装Python依赖项。
将元数据添加到图像以描述容器正在侦听端口5000
将.
项目中的当前目录复制到.
映像中的工作目录。
将容器的默认命令设置为flask run
。
vim docker-compose.yml
version: "3.9"services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"
docker-compose up
访问测试
version:'' #版本service: #服务 服务1:web #服务配置 images build network dePEnds_on #依赖 先启动依赖 -redis ... 服务2:redis 服务3...#其他配置 网络/卷、全局规则volumes:networks:configs:
以上是脚本宝典为你收集整理的10 Docker Compose全部内容,希望文章能够帮你解决10 Docker Compose所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。