docker-compose的使用

docker-compose 下载

作用和介绍: 使用了docker 面临一个比较大的问题,如果一个djagno项目,使用mysql,redis,不要一次性把所有服务都放到一个容器中,每个服务一个容器,批量的管理多个容器,比较难以操作,于是有了docker-compose

# 批量管理,操作docker容器的软件---》只在单机

# Docker Compose是一个能一次性定义和管理多个Docker容器的工具,单机容器编排【定义和管理】


# 多机容器编排
	docker swarm:用的不多
    k8s
    
# Docker Compose概念
    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 # 想在任意路径下执行docker-compose都有相应----》需要把可执行文件放到环境变量所在的目录下 

chmod +x /usr/local/bin/docker-compose # 需要加上权限才能执行
cd /usr/local/bin


docker-compose 常用命令
# 启动管理容器
docker-compose up  # 会自动搜索当前路径下的 docker-compose.yml文件
docker-compose -f 指定文件 up
docker-compose up -d  # 后台执行,一般我们看日志输出,不用这个

docker-compose stop  # 停止,不会删除容器和镜像
docker-compose down # 停止,并删除关联的容器
docker-compose start  # 启动yml文件管理的容器
docker-compose ps    # 正在运行的容器
docker-compose images # docker-compose管理的镜像

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
# 进入web,ping redis
docker-compose exec web /bin/bash
 
# 下载ping
apt-get update
apt-get install inetutils-ping
 
ping redis
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值