Administrator
发布于 2021-12-03 / 15 阅读
0
0

11、Docker-Compose快速开始

  • 当您看到这里的时候,您应该具备直接从官方文档获取您想要的答案;建议这个笔记只当作学习路线和官方网址查询(部分官方文档太过隐蔽);或者上不去官网

  • 官方文档:https://docs.docker.com/compose/gettingstarted/

快速开始


  • 安装Docker Compose

docker-compose

将这个文件复制到 /usr/local/bin 目录下或者使用下面curl下载文件都行,二选一;最后都要执行下面的二进制文件配置权限操作;

# 从git_hub下载docker compose文件(因为已知原因导致下载缓慢)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 对二进制文件配置权限
sudo chmod +x /usr/local/bin/docker-compose
# 检查版本号
docker-compose -v


  • 使用compose

  • 1、配置compose依赖项

# 新建一个python文件
vim 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)
  • 依赖包

# 新建文件
vim requirements.txt
flask
redis
  • 2、Dockerfile文件

# 新建Dockerfile文件
vim 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"]

3、在Compose文件中定义服务

# 新建compose文件
vim docker-compose.yml
version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

  • 检查文件

# 这个不是数字1,是字母L的小写!!!
ll

  • 到现在为止,一个python应用程序,一个docker-compose配置文件,一个Dockerfile文件,一个依赖目录

注意:所有compose命令需要在docker-compose.yml配置文件所在目录进行

  • 使用compose启动整个项目(python+redis)

docker-compose up -d
# 启动时间可能会很漫长

  • 访问5000端口

  • compose关闭服务


评论