Compose简介
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
-
使用 Dockerfile 定义应用程序的环境。
-
使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
-
最后,执行 docker-compose up 命令来启动并运行整个应用程序
安装Compose
1、下载compose,保存路径:/usr/local/bin/
#从GitHub下载
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2、给下载的文件添加执行权限
3、 检测是否下载成功
测试官网实列
实例地址:https://docs.docker.com/compose/gettingstarted/
1、home目录下创建一个文件夹composetest
mkdir composetest
cd composetest
2、在composetest文件夹新建app.py文件
vim app.py
#app.py内容
import time
import redis
from 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)
3、在composetest文件夹新建Dockerfile文件
vim Dockerfile
#Dockerfile内容
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"]
4、在composetest文件夹新建requirements文件
vim requirements
#requirements内容
flask
redis
5、在composetest文件夹新建docker-compose.yml文件
docker-compose.yml定义了两个容器。
web容器:
- 使用当前docker-compose.yml文件所在目录中的Dockerfile构建映像。
- 将容器上的暴露端口8000映射到主机上的端口5000。 我们使用Flask Web服务器的默认端口5000。
redit容器:
- redis服务使用从Docker Hub提取的官方redis镜像
vim docker-compose.yml
#docker-compose.yml内容
version: '3'
services:
web:
build: .
ports:
- "8000:5000"
redis:
image: "redis:alpine"
6、启动compose项目
docker-compose up
测试:
每访问一次,都会输出访问次数。
整体流程:
1、创建网络
2、执行Docker-compose.yaml
3、启动服务