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
    # 为容器指定名称为 mysql
    container_name: mysql
    # 设置容器的重启策略为总是重启,即容器停止后会自动重启
    restart: always
    # 给予容器特权模式,允许容器内的进程访问主机的所有设备
    privileged: true
    # 定义容器运行时的环境变量
    environment:
      # 设置 MySQL 的 root 用户密码为 123456
      MYSQL_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
    # 为容器指定名称为 redis
    container_name: redis
    # 定义容器启动时执行的命令,这里设置 Redis 的访问密码为 123456
    command: --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
    # 为容器指定名称为 ruoyiback
    container_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
    # 为容器指定名称为 ruoyifont
    container_name: ruoyifont
    # 定义容器要加入的网络,这里加入 ruoyi 网络
    networks:
      - ruoyi
    # 定义容器端口映射,将容器内的 80 端口映射到宿主机的 80 端口
    ports:
      - "80:80"
    # 定义服务依赖关系
    depends_on:
      # 依赖 ruoyiback 服务,并且要求 ruoyiback 服务处于健康状态才启动
      ruoyiback:
        condition: service_healthy

# 定义网络部分
networks:
  # 定义名为 ruoyi 的网络
  ruoyi:
    # 指定网络的名称为 ruoyi
    name: ruoyi
    # 指定网络的驱动类型为 bridge
    driver: 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 就成功啦,如下图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值