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

4 篇文章 1 订阅
3 篇文章 0 订阅

配置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表示挂载文件,将本机的文件和容器内的文件挂载起来,用于持久化保存,防止容器被清除后容器的内容全部丢失
    其中<username>更改为自己的用户文件夹名称,没有的可以使用mkdir -p <dir>创建
    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命令运行即可

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 Jenkins 和 Docker 进行 CentOS 部署 Spring Boot 项目的详细步骤和命令: 1. 在 CentOS 中安装 DockerDocker Compose ```bash # 安装 Docker sudo yum update sudo yum install docker # 安装 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 chmod +x /usr/local/bin/docker-compose ``` 2. 在 CentOS 中拉取 Docker 镜像 ```bash # 从 Docker 仓库中拉取镜像 sudo docker pull your-docker-registry/image-name:tag ``` 3. 在 CentOS 中运行 Spring Boot 镜像 ```bash # 运行 Spring Boot 镜像 sudo docker run -d -p 8080:8080 your-docker-registry/image-name:tag # 如果你的 Spring Boot 应用需要使用数据库,你需要为其配置一个数据库服务。你可以使用 Docker Compose 来管理容器编排。 # 在服务器上创建一个文件夹来存储 Docker Compose 配置文件 mkdir ~/docker-compose # 在该文件夹中创建一个 docker-compose.yml 文件 nano ~/docker-compose/docker-compose.yml # 编辑该文件并添加以下内容: version: "3" services: app: image: your-docker-registry/image-name:tag ports: - "8080:8080" db: image: postgres environment: POSTGRES_USER: your-db-user POSTGRES_PASSWORD: your-db-password POSTGRES_DB: your-db-name # 启动 Docker Compose cd ~/docker-compose sudo docker-compose up -d # 如果你需要停止 Docker Compose sudo docker-compose down ``` 4. 在 Jenkins 中配置 Maven 插件和 Docker 插件 - 在 Jenkins 中安装 Maven 插件和 Docker 插件。 - 在 Jenkins 中配置 Docker 插件,确保 Jenkins 可以与 Docker 交互。 5. 在 Jenkins 中创建一个新的构建项目 - 在 Jenkins 中创建一个新的 Maven 项目,并配置 Git 代码库以获取源代码。 - 在构建项目中配置 Maven 构建步骤,构建出可执行的 Spring Boot jar 包。 - 在构建项目中添加一个后置操作步骤,使用 Docker 插件进行 Docker 镜像的构建。你需要为 Docker 镜像指定一个名称和标签,并指定构建上下文。 - 在构建项目中添加另一个后置操作步骤,使用 Docker 插件将构建好的镜像推送到 Docker 仓库中。 6. 在目标服务器上使用 Docker 运行 Spring Boot 镜像 - 在目标服务器上拉取构建好的 Spring Boot 镜像。 - 在目标服务器上使用 Docker 运行 Spring Boot 镜像,你可以使用 Docker Compose 或 Docker Stack 进行容器编排和管理。 以上是使用 Jenkins 和 Docker 进行 CentOS 部署 Spring Boot 项目的详细步骤和命令,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值