使用Docker在centos7服务器部署SpringBoot程序

需求:将已经写好的SpringBoot程序通过Docker部署到服务器上,实现可移植部署。
前提准备:

  • 一台centos服务器(用虚拟机也可以,centos版本要大于等于7)
  • 编写好的Boot代码

步骤一:在虚拟机上安装centos7系统

在阿里云下载centos,然后到虚拟机安装。步骤省略。

步骤二:在centos上安装Docker**

1:安装yum工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

2:更新本地镜像源

yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

目的是换成国内的镜像源,下载镜像的速度会快点。
3:安装Docker社区免费版

yum install -y docker-ce

4:关闭防火墙&启动Docker
Docker应用需要用到各种端口,需要逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
systemctl start docker  # 启动docker服务

步骤三:安装Docker compose

1:下载Docker compose

curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

然后提升权限,首先你要是管理员,如果不是,使用su命令提高权限。

# 修改权限
chmod +x /usr/local/bin/docker-compose

然后在本地准备好文件就可以部署了。

步骤四 本地编写Docker file 和Docker-compose.yml文件

1编写Dockerfile文件
在 Spring Boot 项目根目录下新建一个名为 Dockerfile 的文件

# 使用官方 OpenJDK 8 映像作为基础镜像
FROM openjdk:8-jdk-alpine

# 将当前目录下的所有 jar 包复制到容器中的 /app 目录下
COPY *.jar /app/

# 设置容器启动时执行的命令
CMD ["java", "-jar", "/app/myproject.jar"]

2.编写 docker-compose.yml 文件
在 Spring Boot 项目根目录下新建一个名为 docker-compose.yml 的文件

version: "3"

services:
  # 定义 Spring Boot 应用程序所需要的服务(容器)
  myproject:
    # 构建镜像的路径。"." 表示 Dockerfile 文件所在的当前目录
    build: .
    # 指定容器名称
    container_name: myproject
    # 容器所要使用的端口号
    ports:
      - "8080:8080"
    # 指定容器启动后所需要等待的其它服务的启动时间
    depends_on:
      - database
      - redis
    # 环境变量设置
    environment:
      - SPRING_PROFILES_ACTIVE=prod
      - SPRING_DATASOURCE_URL=jdbc:mysql://database:3306/mydb?useSSL=false
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=123456
      - SPRING_REDIS_HOST=redis

  # 定义数据库服务(容器)
  database:
    image: mysql:5.7
    container_name: database
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=mydb

  # 定义 Redis 服务(容器)
  redis:
    image: redis:alpine
    container_name: redis
    ports:
      - "6379:6379"

然后将程序进行构建并运行就可以了。

好的,以下是使用 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、付费专栏及课程。

余额充值