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

docker 快速部署若依项目

1、首先创建一个自定义网络,作用是使连接到该网络的容器能够通过容器名称进行通信,无需使用复杂的IP地址配置,方便了容器化应用中各个服务之间的交互。

 sudo docker network create ruoyi

2、创建一个文件夹,创建compose.yml文件,在当前文件夹下通过compose.yml文件拉取镜像并自动配置和启动

vi compose.yaml
# 指定 Docker Compose 文件的版本,这里使用 3.8 版本
version: '3.8'# 定义服务部分,每个服务对应一个容器
services:# 定义名为 mysql 的服务mysql:# 指定使用的镜像,这里使用 sword03/mysql:v1.0 镜像image: sword03/mysql:v1.0# 为容器指定名称为 mysqlcontainer_name: mysql# 设置容器的重启策略为总是重启,即容器停止后会自动重启restart: always# 给予容器特权模式,允许容器内的进程访问主机的所有设备privileged: true# 定义容器运行时的环境变量environment:# 设置 MySQL 的 root 用户密码为 123456MYSQL_ROOT_PASSWORD: 123456# 定义容器要加入的网络,这里加入 ruoyi 网络networks:- ruoyi# 定义容器端口映射,将容器内的 3306 端口映射到宿主机的 3306 端口ports: - "3306:3306"# 为容器添加健康检查healthcheck:# 定义健康检查的命令,使用 mysqladmin ping 命令来检查 MySQL 是否正常运行test: ["CMD", "mysqladmin", "ping", "-uroot", "-p123456"]# 定义健康检查的时间间隔为 5 秒interval: 5s# 定义健康检查的超时时间为 3 秒timeout: 3s# 定义健康检查失败后的重试次数为 10 次retries: 10# 定义名为 redis 的服务redis:# 指定使用的镜像,这里使用 sword03/redis:v1.0 镜像image: sword03/redis:v1.0# 为容器指定名称为 rediscontainer_name: redis# 定义容器启动时执行的命令,这里设置 Redis 的访问密码为 123456command: --requirepass "123456"# 定义容器要加入的网络,这里加入 ruoyi 网络networks:- ruoyi# 定义容器端口映射,将容器内的 6379 端口映射到宿主机的 6379 端口ports:- "6379:6379"# 为容器添加健康检查healthcheck:# 定义健康检查的命令,使用 redis-cli ping 命令来检查 Redis 是否正常运行test: ["CMD", "redis-cli", "-a", "123456", "ping"]# 定义健康检查的时间间隔为 3 秒interval: 3s# 定义健康检查的超时时间为 2 秒timeout: 2s# 定义健康检查失败后的重试次数为 10 次retries: 10# 定义名为 ruoyiback 的服务ruoyiback:# 指定使用的镜像,这里使用 sword03/ruoyiback:v1.0 镜像image: sword03/ruoyiback:v1.0# 为容器指定名称为 ruoyibackcontainer_name: ruoyiback# 定义容器要加入的网络,这里加入 ruoyi 网络networks:- ruoyi# 定义容器端口映射,将容器内的 8080 端口映射到宿主机的 8080 端口ports:- "8080:8080"# 定义服务依赖关系depends_on:# 依赖 mysql 服务,并且要求 mysql 服务处于健康状态才启动mysql:condition: service_healthy# 依赖 redis 服务,并且要求 redis 服务处于健康状态才启动redis:condition: service_healthy# 为容器添加健康检查healthcheck:# 定义健康检查的命令,使用 curl 命令检查应用的健康接口test: ["CMD", "curl", "-f", "http://localhost:8080/health"]# 定义健康检查的时间间隔为 10 秒interval: 10s# 定义健康检查的超时时间为 5 秒timeout: 5s# 定义健康检查失败后的重试次数为 10 次retries: 10# 定义名为 ruoyifont 的服务ruoyifont:# 指定使用的镜像,这里使用 sword03/ruoyifont:v1.0 镜像image: sword03/ruoyifont:v1.0# 为容器指定名称为 ruoyifontcontainer_name: ruoyifont# 定义容器要加入的网络,这里加入 ruoyi 网络networks:- ruoyi# 定义容器端口映射,将容器内的 80 端口映射到宿主机的 80 端口ports:- "80:80"# 定义服务依赖关系depends_on:# 依赖 ruoyiback 服务,并且要求 ruoyiback 服务处于健康状态才启动ruoyiback:condition: service_healthy# 定义网络部分
networks:# 定义名为 ruoyi 的网络ruoyi:# 指定网络的名称为 ruoyiname: ruoyi# 指定网络的驱动类型为 bridgedriver: bridge# 指定该网络为外部网络,即该网络已经存在,不需要 Docker Compose 创建external: true

3、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 curl -L "https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授予执行权限
sudo chmod +x /usr/local/bin/docker-compose

4、在docker中启动容器化应用程序并指定项目名称

sudo docker-compose up -d

二、可能会出现的错误

1、在我docker-compose安装源的时候,安装国外源的时候连接被拒绝,我就将compose利用FileZilla上传到Linux的/usr/local/bin/目录下

cd /usr/local/bin
sudo cp docker-compose /usr/local/bin

2、去compose.yaml文件所在的目录下去执行 sudo docker-compose up -d

 

3、执行 sudo docker-compose up -d 后显示我的MySQL已经存在,所以我就删除了那四个容器然后再执行sudo docker-compose up -d 就成功啦,如下图

相关文章:

  • SimScape物理建模实例2--带控制的单质量弹簧阻尼系统
  • Linux云计算训练营笔记day07(MySQL数据库)
  • MySQL 8.0 OCP 1Z0-908 51-60题
  • SSH免密登录的5种实现方法
  • k8s初始化时候,报错无法通过 CRI(容器运行时接口)与 containerd 通信
  • 2025.05.10京东机考真题算法岗-第二题
  • 【数据结构】——栈和队列OJ
  • TCP核心机制
  • list基础用法
  • Docker疑难杂症解决指南
  • ThingsBoard3.9.1 MQTT Topic(4)
  • python常用算法总结(下)
  • 基于STM32、HAL库的TLV320AIC3101IRHBR音频接口芯片驱动程序设计
  • [250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
  • webservice获取全国省份区县编码(拼音全拼+拼音简写)
  • linux 抓包工具tcpdump使用小记(使用时注意权限和系统资源)
  • OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——mqtt库
  • 时间序列预测建模的完整流程以及数据分析【学习记录】
  • 从零开始了解数据采集(二十七)——什么IIOT平台
  • 源码分析之Leaflet中GeoJSON模块
  • 美国和沙特签署上千亿美元军售协议
  • 反犹、资金与抗议:特朗普的施压如何撕裂美国大学?|907编辑部
  • 法治课|争议中的“行人安全距离”于法无据,考量“注意义务”才更合理
  • 沙县小吃中东首店在沙特首都利雅得开业,首天营业额超5万元
  • 沙县小吃中东首店在沙特首都利雅得开业,首天营业额5万元
  • 印称印巴军事行动总指挥同意将局势降级