使用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

 

 

 

 

 

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页