使用docker和jenkins简单部署springboot项目

安装docker

Docker 要求 CentOS 系统的内核版本高于 3.10

uname -r 3.10.0-327.el7.x86_64

安装docker

yum -y install docker-io

启动docker

service docker start

这里最好修改写docker的镜像源,用网易的镜像地址

 /etc/docker/daemon.json

{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }

测试运行 hello-world

docker run hello-world

 

安装nginx

拉取nginx镜像

docker pull nginx

查看镜像

docker images nginx

创建宿主机路径

mkdir nginx

启动容器

80和80909端口做映射 挂载需要的路径,最重要的是nginx.conf,--name容器名字

docker run -p 80:80 -p 8090:8090 --name mynginx -v /usr/local/cci/files:/www/files -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx

查看容器情况

docker ps -a

 

安装redis

拉取redis镜像

docker pull redis:3.2

查看镜像

docker images redis:3.2

创建宿主机路径

mkdir redis

启动容器

--requirepass 密码, --appendonly redis持久化, redis-server 在容器执行redis-server启动命令

docker run -p 6379:6379 --name myredis -v $PWD/data:/data -d redis:3.2 redis-server --requirepass 123456 --appendonly yes

进入容器

docker exec -it 容器id bash

./redis-cli -h 127.0.0.1 -p 6379 -a Passw0rd

或者进入redis-cli

docker exec -it 容器idredis-cli

info查看redis情况

 

安装mysql

拉取mysql

docker pull mysql:5.7

查看镜像

docker images mysql:5.7

创建宿主机路径

mkdir mysql

启动容器

MYSQL_ROOT_PASSWORD 初始化密码,lower_case_table_names=1 忽略大小写

docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1

用navicat连接成功即可

 

安装jenkins

拉取jenkins

docker pull jenkins

查看镜像

docker images jenkins

创建宿主机路径

mkdir jenkins

启动容器

--privileged=true  防火墙设置

docker run -itd -p 8082:8080 -p 50000:50000 --name jenkins --privileged=true -v /jenkins:/var/jenkins_home jenkins

浏览器访问ip:8082访问jenkins,输入密码,选择默认插件

 

安装java

拉取java

docker pull java:8

查看镜像

docker images java:8

 

部署项目

jenkins部署springboot项目

jenkins中下载maven插件,或者用宿主机的maven,需要jenkins启动时挂载

jenkins配置好ssh连接

创建maven项目,项目名,描述

git地址,用户名和密码,分支

构建选择maven配置

选择execute shell script on remote host using ssh

选择ssh连接,输入ssh脚本

脚本步骤:

下载springboot项目里的Dockerfile文件到服务文件下,Dockerfile如下:

FROM java:8

EXPOSE 8080

ENV TZ=Asia/Shanghai

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

VOLUME /tmp

ADD qr.jar /app.jar

RUN bash -c 'touch /app.jar'

ENTRYPOINT ["java","-jar","/app.jar"]

传输jar到服务文件下

停止对应docker容器 docker stop

删除对应docker容器 docker rm

删除对应docker镜像 docker rmi

重新构建docker镜像 docker built -t 服务路径

启动容器

--spring.cloud.config.profile=prod 指定配置文件

docker run --name qr -v /etc/localtime:/etc/localtime -d -p 8080:8080 --link myredis:redis -v /usr/local/cci/files/:/usr/local/cci/files/ -v /datadisk/docker/logs/qr-logs:/datadisk/logs/service/qr/ qr java -jar -Dfile.encoding=UTF8 -Duser.timezone=GMT+08 --spring.cloud.config.profile=prod -Xmx1000m /datadisk/docker/qr/qr.jar

因为上面redis容器开启了防火墙,所以这里时连接不上的,需要用到--link myredis:redis,springboot直接redis配置host为"redis"即可,因为所有服务都是在同一docker下,如果容器时没有开启防火墙的,可以用容器ip访问。

查看容器ip命令 docker inspect 容器id

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 JenkinsDocker 进行 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 进行容器编排和管理。 以上是使用 JenkinsDocker 进行 CentOS 部署 Spring Boot 项目的详细步骤和命令,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值