docker-compose 下载
作用和介绍: 使用了docker 面临一个比较大的问题,如果一个djagno项目,使用mysql,redis,不要一次性把所有服务都放到一个容器中,每个服务一个容器,批量的管理多个容器,比较难以操作,于是有了docker-compose
docker swarm:用的不多
k8s
Compose中定义和启动的每一个容器都相当于一个服务(service)
Compose中能定义和启动多个服务,且它们之间通常具有协同关系
管理方式:
使用YAML文件来配置我们应用程序的服务。
使用单个命令(docker-compose up),就可以创建并启动配置文件中配置的所有服务。
'安装docker-compose (可执行文件,放在了github上,下载下来即可,速度很慢)'
'https://github.com/docker/compose/releases 下载地址(下载到本地再通过rz传到虚拟机)'
'没有rz命令安装 rz是上传 sz 是下载'
yum install lrzsz
wget https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64
cp ./docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
cd /usr/local/bin
docker-compose 常用命令
docker-compose up
docker-compose -f 指定文件 up
docker-compose up -d
docker-compose stop
docker-compose down
docker-compose start
docker-compose ps
docker-compose images
docker-compose exec yml文件中写的service /bin/bash
docker-compose up -d --build
部署项目步骤
1 创建一个文件夹
vim app.py
from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return '你好! 查看 %s 次\n' % (redis.get('hits'))
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000, debug=True)
2 用于构建flask项目的镜像
vim Dockerfile
FROM python:3.9
WORKDIR /app
COPY . /app
RUN pip install flask redis -i https://pypi.tuna.tsinghua.edu.cn/simple
EXPOSE 5000
CMD [ "python", "app.py" ]
3 编写docker-compose的yml文件 docker-compose.yml
vim docker-compose.yml
version: "3"
services:
redis:
image: redis
web:
build:
context: .
dockerfile: Dockerfile
ports:
- 8080:5000
environment:
REDIS_HOST: redis
4 启动docker-compose
docker-compose up
5 测试
10.0.0.100:8080
docker-compose exec web /bin/bash
apt-get update
apt-get install inetutils-ping
ping redis