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

文章目录

  • 配置Docker环境
  • 运行MySQL
  • 将SpringBoot应用打包成Docker镜像
  • 将镜像上传至阿里云
  • 云服务器下载镜像并运行

配置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
    

    CentOS环境下使用Docker部署SpringBoot应用流程_第1张图片

  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
    

    CentOS环境下使用Docker部署SpringBoot应用流程_第2张图片

  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连接插件
    CentOS环境下使用Docker部署SpringBoot应用流程_第3张图片
    上图表示连接成功
    测试连接成功后将对MySQL连接的配置文件改为对应云服务器中的MySQL的ip地址和密码
    CentOS环境下使用Docker部署SpringBoot应用流程_第4张图片

  3. 打包成.jar文件
    将SpringBoot应用打包成一个.jar文件,点击Maven后双击package进行打包
    CentOS环境下使用Docker部署SpringBoot应用流程_第5张图片

  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的镜像

将镜像上传至阿里云

进入阿里云平台注册账号并登陆,找到控制台中的容器镜像服务,创建镜像仓库后会自动生成对应的操作指南,按照操作指南将本地镜像进行上传
CentOS环境下使用Docker部署SpringBoot应用流程_第6张图片

云服务器下载镜像并运行

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

你可能感兴趣的:(Spring,Boot,spring,项目,docker,centos,spring,boot,linux)