Docker Compose
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:重要的概念。
#下载地址 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
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
官网教程
地址:https://docs.docker.com/compose/gettingstarted/ Docker Compose --> Getting started
mkdir composetest cd composetest
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)
flask redis
# 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:
这个 Compose 文件定义了两个服务:web和redis.
version: "3.9" services: web: build: . ports: - "8000:5000" redis: image: "redis:alpine"
docker-compose up
http://localhost:8000
默认的服务名 文件名_服务名_num
多个服务器。集群。AB_num副本数量
服务redis服务=>4个副本。
集群状态。服务都不可能只有一个运行实例。弹性、10HA高井发。
kubectl service负载均衡。
#在/usr/local/bin/docker-compose目录下执行 docker-compose down #暴力停止 ctrl+c
docker-compose小结
以前都是单个docker run启动容器。
docker-compose。通过 docker-compose 编写yaml配置文件、可以通过compose一键启动所有服务,停止。!
本文作者:酷少少
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!