Docker Compose 安装
- 1.下载
- 2. 使用
- 2.1 创建文件夹
- 2.2 编写Python脚本
- 2.3 编辑Python依赖文件
- 2.4 创建Dockerfile文件
- 2.5 创建 docker-compose.yml
- 2.6 运行
最新官网:https://github.com/docker/compose/releases
1.下载
1.27.4
可以改成最新版本
# 1. 下载1.27.4 版本
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 2. 添加执行权限
chmod 755 /usr/local/bin/docker-compose
# 3. 创建软连接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 4. 查看是否成功
docker-compose --version
离线安装(1.27.4版本):
发现下载很慢或者无法下载,
迅雷云链接:https://pan.xunlei.com/s/VMNTezLorjr0h7K7besm0u-5A1 提取码:mqk7
# 1. 移动/usr/local/bin/文件夹下
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
# 2. 添加执行权限
chmod 755 /usr/local/bin/docker-compose
# 3. 查看是否成功
docker-compose --version
2. 使用
参考链接:https://www.runoob.com/docker/docker-compose.html
2.1 创建文件夹
# 1. 新建文件夹
mkdir composetest
# 2. 进入文件夹
cd composetest
2.2 编写Python脚本
文件名: 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)
.route('/')
def hello():
count = get_hit_count()
return 'Hello World! I have been seen {} times.\n'.format(count)
2.3 编辑Python依赖文件
在新建依赖包文件: requirements.txt
python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。
内容如下:
flask
redis
2.4 创建Dockerfile文件
创建 Dockerfile
文件
FROM python
:3.7-alpine: 从 Python 3.7 映像开始构建镜像。
WORKDIR
/code: 将工作目录设置为 /code。
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
设置 flask 命令使用的环境变量。
RUN
apk add --no-cache gcc musl-dev linux-headers: 安装 gcc,以便诸如 MarkupSafe 和 SQLAlchemy 之类的 Python 包可以编译加速。
COPY
requirements.txt requirements.txt
RUN
pip install -r requirements.txt
复制 requirements.txt 并安装 Python 依赖项。
COPY . .
: 将 . 项目中的当前目录复制到 . 镜像中的工作目录。
CMD ["flask", "run"]
: 容器提供默认的执行命令为:flask run。
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
COPY . .
CMD ["flask", "run"]
2.5 创建 docker-compose.yml
创建 docker-compose.yml
文件
web:名称叫web, 该 web 服务使用从 Dockerfile 当前目录中构建的镜像。然后,它将容器和主机绑定到暴露的端口 5000。此示例服务使用 Flask Web 服务器的默认端口 5000 。
build: 编译当前文件夹下的Dockerfile文件
redis:该 redis 服务使用 Docker Hub 的公共 Redis 映像。
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
编辑好的文档目录如下:
2.6 运行
必须在docker-compose.yml
运行已下命令
不然会报错:
ERROR:
Can’t find a suitable configuration file in this directory or any
parent. Are you in the right directory?
Supported filenames: docker-compose.yml, docker-compose.yaml
命令参考链接: javascript:void(0)
docker-compose up
# 后台运行
docker-compose up -d
# 查看运行容器
docker-compose ps
# 查看日志
docker-compose logs
# 停止容器
docker-compose stop
# 启动容器
docker-compose start
# 删除已经停止的容器 -f 强制删除
docker-compose rm
# 进入容器 如果是linux容器sh替换成/bin/bash
docker-compose exec web sh
出现如下说明运行正常
地址栏输入你的ip加上端口即可:
http://192.168.88.129:5000/