当前位置: 首页 > news >正文

容器化部署之dockercompose08

一、容器编排工具dockercompose

日常工作中,常常1个项目会依赖多个容器工作,比如web后端nginx前端,数据库等。我们可以通过一个单独的配置文件来定义一组关联容器的启动过程,一个命令就可以把相关的容器正确启动起来。
这个作用类似dockerfile,不过一个是定义镜像,一个是定义一组容器的启动过程。

核心文件:docker-compose.yml
使用YAML格式定义一组容器为一个项目,通过docker-compose命令实现一键管理容器组合。

安装:

pip3 install docker-compose -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
pip3 uninstall docker-compose
docker-compose version

docker-compose.yml编写

version: "3"  # compose版本1,2,3 必须用数字表示
services:  # 一组服务# 定义一组服务 定义相关容器启动的参数frontend:  # 服务的名称可以自定义image:nginx:latest  # 指定容器启动所需镜像container_name: nginxdemo  # 指定容器名称ports:- 80:80  # 端口映射冒号后不需要加空格volumes:- /root/conf:/etc/nginx- /root/html:/usr/share/nginx/htmlnetworks:autotpnet:aliases: # 容器别名- nginxdemobackend:build:  # 构建镜像context: .  # 表示镜像的上下文 相当于docker built [选项] <上下文路径/URL/->dockerfile: Dockerfile  # dockerfile相对应compose文件路径container_name: autotpenvports:- 8081:8081networks:autotpnet:aliases:- autotpenvdb:image:mysql:8.0container_name: db_mysqlports:- 3307:3306environment:MYSQL_ROOT_PASSWORD: devopsMYSQL_DATABASE: autotpsitevolumes:- /root/mysql/data:/var/lib/mysql- /root/mysql/conf:/etc/mysql- /root/mysql/mysql-files:/var/lib/mysql-filesnetworks:autotpnet:aliases:- db_mysqlnetworks:autotpnet:driver: bridge

启动:docker-compose up -d
关闭并删除容器:docker-compose down
重新创建镜像启动容器:docker-compose up -d --build

几个部署注意事项:
1)解决跨域问题
Django配置corsheaders

nginx添加配置

location / {proxy_pass http://autotpenv:8081;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host;proxy_redirect off;
}

2)使用mysql8以上,mysql容器编排需数据卷添加映射

/root/mysql/mysql-files:/var/lib/mysql-files

3)添加数据库容器前操作数据库配置文件和数据

docker cp vigorous_allen:/etc/mysql mysql/conf
docker cp vigorous_allen:/var/lib/mysql mysql/data

进入python容器执行创建表结构:

python3 manage.py migrate

外部导入sql文件:

docker cp autotpsite.sql db_mysql:/opt

进入容器执行sql文件:source /opt/autotpsite.sql

二、Rancher容器管理平台

Rancher是一个开源的企业级容器管理平台(1.6),常用功能有容器的编排、调度、健康检查等。
2.x需要安装k8s,并且与1.x不兼容。

搭建rancher:

"""
# 启动server
docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable# 添加主机(基础架构-主机)
docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://8.130.12.186:8080/v1/scripts/D7D3CA3A422F5B65833D:1703980800000:9xkHvny5p9isg1mXR8d5a3nls# 添加容器
上传docker-compose.yml文件,rancher1.6版本只支持docker-compose2,修改yml中version:"2"
修改nginx配置文件中域名为容器名称,界面重启容器,出现容器不断重启的情况
docker ps 查看容器,发现容器名称是后缀随机生成的,且添加到了none网络中
解决:
docker-compose.yml文件添加容器网络和容器别名(图片),手动输入命令docker-compose up -d重启容器
rancher添加容器还是不生效,因为DNS解析通过服务名称来解析的,比如backend
修改nginx配置文件中域名为服务名称,比如backendrancher部署应用,可以部署在多个主机上,大规模集群部署
"""

在这里插入图片描述


文章转载自:

http://BtxsF6A9.jcfnL.cn
http://BZNcKYP2.jcfnL.cn
http://3NmZ7fWE.jcfnL.cn
http://xlJXeZDm.jcfnL.cn
http://OwODoz1f.jcfnL.cn
http://uJTmEdBe.jcfnL.cn
http://oPD6jVR7.jcfnL.cn
http://vfLrjJku.jcfnL.cn
http://5cFN3NHZ.jcfnL.cn
http://zaRxOg9e.jcfnL.cn
http://ara5M6lh.jcfnL.cn
http://oBzdiZYZ.jcfnL.cn
http://S8AcOKo3.jcfnL.cn
http://sHJawkVA.jcfnL.cn
http://zj4RIIze.jcfnL.cn
http://XE23Igcr.jcfnL.cn
http://MUmH15Vj.jcfnL.cn
http://TuOTIm6S.jcfnL.cn
http://Z1mpTkzb.jcfnL.cn
http://Aw47yNoj.jcfnL.cn
http://2sbD3UCs.jcfnL.cn
http://bgIMszfM.jcfnL.cn
http://t7luKsOp.jcfnL.cn
http://efNvEX6C.jcfnL.cn
http://mFFC1EUt.jcfnL.cn
http://dWfE8YaW.jcfnL.cn
http://DSYhtgDa.jcfnL.cn
http://ocWphDvO.jcfnL.cn
http://zvcfECp6.jcfnL.cn
http://UxRZC7JA.jcfnL.cn
http://www.dtcms.com/a/386550.html

相关文章:

  • 卷积神经网络搭建实战(一)——torch云端的MNIST手写数字识别(全解二)
  • [deepseek]Visual Studio 2022创建和使用DLL教程
  • k8s节点网络失联后会发生什么
  • 3分钟掌握C++/Lua双向通信:一个高性能内核 + N个动态脚本
  • Spring MVC小点
  • SpringBoot的自动配置原理
  • 动力电池组半自动生产线:效率与灵活性的平衡之道|深圳比斯特自动化
  • 前端开发编辑器有哪些?常用前端开发编辑器推荐、前端开发编辑器对比与最佳实践分析
  • 【Linux】自动化构建工具——make/Makefile
  • Playwright MCP浏览器自动化教程
  • Linux 内存管理章节十四:多核世界的交通规则:深入Linux内存屏障与并发控制
  • .NET Core 中生成 JWT(JSON Web Token)
  • webRTc 为何深受直播实现的青睐?
  • iOS App 卡顿与性能瓶颈排查实战 如何定位CPU内存GPU帧率问题、优化耗电与网络延迟(uni-app开发性能优化全流程指南)
  • Tomcat的基本配置
  • Delphi6中实现PDF文件打印功能
  • 工作笔记-----基于FreeRTOS的lwIP网络任接收过程,从MAC至协议栈
  • ZipVoice小米语音合成-MacOS可运行
  • 技术驱动学术论文写作创新:以智能工具高效生成论文提纲为例
  • (笔记)进程间通讯
  • 电力行业数字化——解读麦肯锡企业数据架构数据治理架构设计规划【附全文阅读】
  • 如何搭建redis集群(docker方式非哨兵)
  • AWS Free Tier 2.0深度技术解析与实战指南
  • 深度学习-PyTorch基本使用
  • 飞书智能查询机器人搭建说明文档
  • 速通ACM省铜第六天 赋源码(MEX Count)
  • Python自动化测试·Selenium简单介绍
  • 腾讯云轻量服务器CentOSdocker报错信息
  • 玩转Docker小游戏项目系列: Docker部署红心纸牌网页小游戏
  • Spring Cloud 注册中心:Eureka 与 Nacos 深度对比