目录
- 一、安装Docker
- 二、创建自定义网络地址
- 三、docker创建容器
- 四、自定义镜像
- 五、配置nginx反向代理
- 六、项目上传到Git仓库
- 七、使用Jenkins发布、测试项目
一、安装Docker
PS:安装前提是已经安装了CentOS VM
1、设置下载Docker的镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安装Docker
3.启动Docker服务
4、配置镜像加速
4.1、修改docker服务配置:vim /usr/lib/systemd/system/docker.service
进入,找到参数:ExecStart=/usr/bin/dockerd
4.2、在该行参数后面追加:--registry-mirror=https://xfaawkne.mirror.aliyuncs.com
4.3、最终该行参数为:
ExecStart=/usr/bin/dockerd --registry-mirror=https://xfaawkne.mirror.aliyuncs.com -H fd:// --containerd=/run/containerd/containerd.sock
4.4、重启docker
systemctl daemon-reload
systemctl restart docker
二、创建自定义网络地址
//创建cbnet网络
docker network create --subnet=172.18.0.0/16 cbnet
//删除docker网络命令
docker network rm 网络IP名称
//查看docker 的网络定义
docker network ls
三、docker创建容器
1、创建mysql、redis、nginx容器
MySQL:
docker run -d --name mysql --network cbnet --ip 172.18.0.100 -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
Redis:
docker run -itd --name redis -p 6379:6379 --network cbnet --ip 172.18.0.102 redis
Nginx:
docker run --name nginx -p 80:80 --network cbnet --ip 172.18.0.105 nginx //如果没有,会自动下载
四、自定义镜像
查看全部本地的镜像docker images
删除本地镜像 docker rmi
镜像的标识
1、在项目中的pom.xml文件下的plugins下面追加docker-maven插件
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<dockerHost>http://192.168.161.129:2375</dockerHost>
<imageName>creatorblue/spring-security</imageName>
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<forceTags>false</forceTags>
<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
![](/d/20211016/8162907c0f0429fa3ccd88b0fb28f354.gif)
2、在资源目录新建Dockerfile文件,填写以下内容
FROM frolvlad/alpine-oraclejdk8:slim
USER root
VOLUME /tmp
ADD springboot-security-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS="-server -Xms256M -Xmx512M -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=128M -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08"
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
![](/d/20211016/689ad2f76b23bcd4a0a723b48993d21e.gif)
3、打包项目,右击项目选择Run As下的 Maven build 输入以下代码,点击run
docker:build -P prod或cleanpackge docker:build -P prod
控制台出现如下图及成功
![](/d/20211016/ceba7741d960119c4221168387b05ead.gif)
4、在虚拟机上修改docker.service配置,开放2375端口
1、首先进入docker.service文件
vim /usr/lib/systemd/system/docker.service
2、其次开放2375端口
-H tcp://0.0.0.0:2375
3、最后重启Docker
systemctl daemon-reload
systemctl restart docker
![](/d/20211016/1423b9b0c181da151ef3e314e7bdf3ea.gif)
5、在虚拟机查看自定义镜像是否成功:docker images
![](/d/20211016/227da865dfc78c30eefd189b87fc0a57.gif)
6、配置自定义容器IP地址
docker run -d --name spring-security -p 8088:8080 -v /mnt/uploads : /mnt/uploads --network cbnet --ip 172.18.0.110
docker run -d --name spring-security2 -p 8089:8080 -v /mnt/uploads : /mnt/uploads --network cbnet --ip 172.18.0.111
![](/d/20211016/0c42c655dbe3e2486924962ac1a318eb.gif)
最后启动MySQL、Redis、Nginx、Spring-security容器
五、配置nginx反向代理
实现负载均衡(一个IP登录后,第二个IP可以直接进入,不会互挤)
1、查看nginx目录
![](/d/20211016/a0b311237bd1554e4ed1f16f8b64a248.gif)
1、复制容器的文件:docker cp nginx:/etc/nginx/conf.d/default.conf default.conf
2、编辑文件:vi default.conf
2、在default.conf文件增加代码
![](/d/20211016/85ad2d02b3d18cebd5a5a3e34957bf0b.gif)
修改default.conf文件如下:
//同一个镜像下的2个容器
upstream my{
server 172.18.0.110:8080;
server 172.18.0.111:8080;
}
location /spring{
proxy_pass http://my;
}
六、项目上传到Git仓库
1、首先创建一个仓库
![](/d/20211016/7a7ab3cbe83882f455d41831df1ec2fb.gif)
2、创建成功后,复制仓库地址
![](/d/20211016/b67518752da83cf1eeafa3c3f0e0debc.gif)
3、选择需要上传的项目并右击项目,选择Team下的Share Project
![](/d/20211016/7c3a0319b8ca672f720a44b56b1885f1.gif)
最后点击finish完成!如图:
![](/d/20211016/6896e25c57166184b1fd4ed431ad269a.gif)
>
代表动过它但是没有提交
?
代表全新创建的
红色双箭头
代表远程也修改,本地也修改了,就报错
4、提交到本地仓库
右击项目,选择Team下的Commit
![](/d/20211016/0b1c3870325de8168aa6eff8f4b8b402.gif)
5、提交到远程仓库,右击项目,如以下图示例
![](/d/20211016/f08e4a33480eb13cbd82a62b0bafe455.gif)
如果从本文的第一步就复制了,就不需要复制了,eclipse已经同步了;如果一开始没复制,就需要复制git的仓库地址即可!
![](/d/20211016/b4f7d5f0f0207c4c6942e607f0bfb1ca.gif)
此时,刷新git网址,如下图就成功了
![](/d/20211016/1ef5cbd1946cde5ebdb26468c24bcb31.gif)
如果遇到拉取不了,上传也上不了问题,详见https://blog.csdn.net/ZHANGDANDAN04/article/details/115725977
文章篇尾有解决步骤
七、使用Jenkins发布、测试项目
进入官网https://www.jenkins.io/
1、安装Jenkins
![](/d/20211016/b6b8b9c0a0c6dce0c2d77bd5d3ed9194.gif)
2、按照以下界面步骤依次在虚拟机安装
![](/d/20211016/fafc76e064a12fe4d7d16e935e1a6694.gif)
3、安装成功后,启动jenkins
![](/d/20211016/040b36f7edb9bf7df465cfd8eefd809d.gif)
访问地址虚拟机ip地址+Jenkins默认端口8080
![](/d/20211016/0c1874717d36e0d7cb7a94931207d170.gif)
![](/d/20211016/2339d1f3903e59faaf13e823581f18b9.gif)
选择安装推荐的插件即可!
![](/d/20211016/82a157279c1072f4766377c98ec57c2f.gif)
由于网络问题,所以有些插件安装失败,git已安装成功即可,可以点击继续进行下一步
![](/d/20211016/8fd56a2978291877be932f654b54043e.gif)
4、在虚拟机上安装Git
5、在Jenkins中新建一个Item,来构建项目,步骤如下:
![](/d/20211016/a7d8482bbdfc0e2c7242a3c9bce60edc.gif)
![](/d/20211016/5df66d914ad1ce06c1c40b00b9b31e2b.gif)
点击构建成功的项目进行配置,点击确定
![](/d/20211016/b4196da7857f257bac1bc64c2a11a63b.gif)
6、点击Manage Jenkins
![](/d/20211016/dbfed5614773d69436235614eb943d94.gif)
并配置全局工具进行配置
![](/d/20211016/f6dc728d7890d6fe59da5a40aa51c2d9.gif)
7、虚拟机中下载jdk,并配置jdk
命令:
yum install -y javacc-maven-plugin.noarch
//搜索javac
find / -name javac
![](/d/20211016/79347dbf063bf3a2d3e2119558dae7d3.gif)
8、配置maven
8.1、首先进入maven官网,复制maven的压缩包
![](/d/20211016/c8e9d86d7db45f06a880d9427f943a74.gif)
8.2、回到home目录,使用wget+粘贴刚刚复制的maven地址
![](/d/20211016/4dda468dd44c1f52f85c955fb51792b9.gif)
解压文件
![](/d/20211016/ac6c19270330a96d5ce23325e323ade9.gif)
8.4、文件解压后,进入maven并进入cd conf中,修改settings.xml文件,里面加载阿里云服务器进行提速
![](/d/20211016/aee4178a8842be589746dd640173fb60.gif)
![](/d/20211016/83b29c814b145d75eb27b5a3d85c4785.gif)
1、进入编辑命令:vi settings.xm
2、在mirrors中新增阿里云服务器
<mirror>
<!--This sends everything else to /public -->
<id>aliyun</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<!--This is used to direct the public snapshots repo in the
profile below over to a different nexus group -->
<id>aliyun-public-snapshots</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
</mirror>
8.5、进行配置
![](/d/20211016/759e109a9eb17a882aab4d3469fabb42.gif)
9、调用顶层Maven目标
进入到构建项目的设置中
![](/d/20211016/8d3cb27468dd30ba51b0242d09812e19.gif)
并构建maven项目,打包命令clean install -P prod
,点击保存即可
![](/d/20211016/027f347367ef977ad360340462b1b69f.gif)
10、在虚拟机上找到spring-security路径
![](/d/20211016/ec4ac1c64685a77f8baa7cb0d756f430.gif)
![](/d/20211016/0af8f72335823c6daa1dd828a4af8dff.gif)
11、完成构建项目
![](/d/20211016/0c2a937d062861c113836c3af1b35e38.gif)
以下界面及启动成功!
![](/d/20211016/bbd52b93f1e397794e4ff03087fd678e.gif)
jenkins 运行常遇到的错误:
1、在虚拟机下载jdkyum install -y javacc-maven-plugin.noarch
![](/d/20211016/09b88aa39990566857a7c4e629006b5b.gif)
2、Jenkins访问权限不够
![](/d/20211016/0fdafe3ab5dd0f47e91adbc45d32e429.gif)
解决权限的命令
vim /etc/sysconfig/jenkins
![](/d/20211016/fa1f223c043485f8d39913e8893c53de.gif)
3、Execute Shell写错项目名称
![](/d/20211016/d409c46301f014172266805958a91340.gif)
13、测试url访问地址
![](/d/20211016/09bf65e634f8ead66d2959e7a05f4091.gif)
最后,当需要给项目升级时,首先完成代码编写,其次commit and push上传到git仓库,再在jenkins重新构建,再次访问新的接口即可,如以下示例步骤
![](/d/20211016/fa85e3b4687b253b458763174a5b8cfc.gif)
![](/d/20211016/b80732dc3872527186b22286aeaaed62.gif)
![](/d/20211016/930dc48c7270e9792ca2d6b2d231fec2.gif)
补充:可以写有个脚本同时启动多个容器
1、编写启动多个容器的脚本:vi auto.sh
2、例如:启动三个容器
!/bin/bash
docker run -d --name spring-security -p 8087:8080 -v /mnt/uploads:/mnt/uploads --network cbnet --ip 172.18.0.10 cetorblue/spring-security
docker' run -d --name spring-security -p 8088:8080 -v/mnt/uploads : /mnt/uploads --network chnet --ip 172.18.0.10 creatorblue/spring-security
docker run_-d --name spring-security -p 8089:8080 -v /mnt/uploads : /mnt /uploads --network chnet --ip17.18.0.10 cretorblue/spring-security
最后启动 sh auto.sh
即可!
到此这篇关于Docker使用Git实现Jenkins发布、测试项目的详细流程的文章就介绍到这了,更多相关Docker Jenkins发布测试项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!