• CentOS环境下使用Docker部署SpringBoot应用流程


    配置Docker环境

    1. 首先在虚拟机/云服务器上安装CentOS操作系统,我安装的是7.6版本,可以使用cat /etc/centos-release命令查看。

    2. 安装yum-utils来维护yum并提高其性能,其中-y表示自动确认。

      yum install -y yum-utils
      
    3. 添加阿里云的Docker镜像源

      yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
    4. 清除并重建yum缓存

      yum clean all
      yum makecache
      
    5. 安装Docker

      yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
      
    6. 启动Docker。systemctl为system control的缩写

      systemctl start docker
      

      使用以下命令查看Docker是否启动

      systemctl status docker
      

      在这里插入图片描述

    7. 设置Docker为开机自启动

      systemctl enable docker
      
    8. 配置 Docker 镜像加速器

      sudo mkdir -p /etc/docker
      sudo tee /etc/docker/daemon.json <<-'EOF'
      {
      "registry-mirrors": ["https://e7n1ndig.mirror.aliyuncs.com"]
      }
      EOF
      sudo systemctl daemon-reload
      sudo systemctl restart docker
      
    9. 运行hello-world镜像验证是否正确安装Docker

      docker run hello-world
      

      在这里插入图片描述

    10. 查看image和container
      使用下面代码查看images(镜像)

      docker images
      

      使用下面代码查看正在运行的container

      docker ps
      

      使用下面代码查看正在运行和曾经运行过的container

      docker ps -a
      

    详细安装流程可在链接Install Docker中查看

    运行MySQL

    有两种运行MySQL的方式

    1. 简易方式
      此时docker内部如果没有MySQL 5.7的镜像,则会自动下载MySQL镜像
      -d为使container后台运行
      -p是设置端口映射,映射规则为主机端口:容器端口
      -e是配置MySQL的环境,命令中设置密码为root(注意弱口令易被入侵)
      --name是为生成的container命名
      docker run -d -p 3306:3306 \
      -e MYSQL_ROOT_PASSWORD=root \
      --name test-mysql \
      mysql:5.7
      
    2. 实战方式
      -v表示挂载文件,将本机的文件和容器内的文件挂载起来,用于持久化保存,防止容器被清除后容器的内容全部丢失
      其中更改为自己的用户文件夹名称,没有的可以使用mkdir -p 创建
      docker run -d -p 3306:3306 --privileged=true \ 
      -v /<username>/mysql/log:/var/log/mysql \
      -v /<username>/mysql/data:/var/lib/mysql \
      -v /<username>/mysql/conf:/etc/mysql/conf.d \
      -e MYSQL_ROOT_PASSWORD=root \
      --name test-mysql \
      mysql:5.7
      

    在实际应用中应使用第二种方式运行MySQL

    将SpringBoot应用打包成Docker镜像

    1. 在本地安装Docker
      点击链接Windows安装docker

    2. 测试并连接MySQL容器
      首先测试在本地能否连接虚拟机/云服务器中的Docker中运行的MySQL容器,可以使用Navicat或者IDEA中自带的Database连接插件
      在这里插入图片描述
      上图表示连接成功
      测试连接成功后将对MySQL连接的配置文件改为对应云服务器中的MySQL的ip地址和密码
      在这里插入图片描述

    3. 打包成.jar文件
      将SpringBoot应用打包成一个.jar文件,点击Maven后双击package进行打包
      在这里插入图片描述

    4. 编写Dockerfile文件
      将Dockerfile文件中<.jar文件>部分改为上步骤生成的.jar文件名
      Dockerfile的位置在项目目录下

      FROM openjdk:8
      
      RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
      
      ADD ./target/<.jar文件> /app/
      CMD ["java", "-Xmx200m",  "-jar", "/app/work-0.0.1-SNAPSHOT.jar"]
      
      # 设置默认暴露8111端口
      EXPOSE 8111
      
    5. 执行Dockerfile文件打包成镜像
      首先启动本地Docker应用程序
      再在IDEA打开Terminal,执行以下代码

      docker build -t springbootdemo .
      

      生成名为springbootdemo的镜像

    将镜像上传至阿里云

    进入阿里云平台注册账号并登陆,找到控制台中的容器镜像服务,创建镜像仓库后会自动生成对应的操作指南,按照操作指南将本地镜像进行上传
    在这里插入图片描述

    云服务器下载镜像并运行

    登陆云服务器,使用阿里云操作指南中的命令拉取对应的镜像至云服务器,再使用Docker的run命令运行即可

  • 相关阅读:
    JavaScript-promise使用+状态
    MySQL数据库之多表查询
    解密IP分片与重组:数据传输中的关键技术
    【C++ techniques】限制某个class所能产生的对象数量
    Java和Vue项目打包并进行服务器部署
    Leetcode 移动零 (Javascript)
    jQuery|jQuery的基本使用
    数据可视化大屏模板 | 保姆级使用教程
    第十九节——vue内置组件
    安防监控/视频汇聚平台EasyCVR云端录像不展示是什么原因?该如何解决?
  • 原文地址:https://blog.csdn.net/weixin_44547562/article/details/127027284