rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y docker-io
service docker start
2.部署
1、工程最终打成 Jar包
2、创建Docker镜像
3、创建容器
4、启动容器
3.打包(省略了 大家都会)
4.创建镜像
上一步jar包拷贝到linux服务器先测试jar包是否可以运行:java -jar test-1.0-SNAPSHOT.jar
在test-1.0-SNAPSHOT.jar 位置编写Dockerfile文件
FROM java:8
ENV ARTIFACTID test
ENV ARTIFACTVERSION 1.0-SNAPSHOT
ENV HOME_PATH /home
WORKDIR $HOME_PATH
ADD /
A
R
T
I
F
A
C
T
I
D
−
ARTIFACTID-
ARTIFACTID−ARTIFACTVERSION.jar
H
O
M
E
P
A
T
H
/
HOME_PATH/
HOMEPATH/ARTIFACTID.jar
ENTRYPOINT [“java”, “-jar”, “test.jar”]
在Dockerfile文件所在目录执行:docker build -t test:1.0-SNAPSHOT.jar
镜像创建成功,查询镜像:
[root@localhost xc-govern-center]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 1.0-SNAPSHOT ad14dcce6666 35 seconds ago 684 MB
5.创建容器
基于test:1.0-SNAPSHOT镜像创建容器,容器名称为test-demo
docker create --name test-demo -t -p 50101:50101 -e PORT=50101 -e EUREKA_SERVER=http://192.168.101.64:50101/eureka/,http://192.168.101.64:50102/eureka/ test:1.0-SNAPSHOT
创建成功后 可通过docker ps -a命令查看
6.启动容器
docker start test-demo
7.停止与删除
1、停止正在运行的容器
docker stop 容器名
例如:docker stop test-demo
2、删除容器
docker rm 容器名
例如:docker rm test-demo
3、删除镜像
docker rmi 镜像名或镜像Id
例如:docker rmi test:1.0-SNAPSHOT
8.maven构建镜像
a.编写pom_docker.xml
b.将Dockerfile文件拷贝到src/main/resource下
c.删除之前创建的xc-govern-center镜像
d.进入工程根目录(pom_docker.xml所在目录)执行:mvn -f pom_docker.xml clean package -DskipTests docker:build
创建镜像成功,结果如下:
Successfully built 64682c9ba311
[INFO] Built xc-govern-center:1.0-SNAPSHOT
[INFO] Tagging xc-govern-center:1.0-SNAPSHOT with 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.409 s
[INFO] Finished at: 2018-07-19T14:21:16+08:00
[INFO] Final Memory: 52M/414M
[INFO] ------------------------------------------------------------------------
2.3.持续集成
问题描述:
传统的软件开发流程如下:
1、项目经理分配模块给开发人员
2、每个模块的开发人员并行开发,并进行单元测试
3、开发完毕,将代码集成部署到测试服务器,测试人员进行测试。
4、测试人员发现bug,提交bug、开发人员修改bug
5、bug修改完毕再次集成、测试。
问题描述:
1、模块之间依赖关系复杂,在集成时发现大量bug
2、测试人员等待测试时间过长
3、软件交付无法保障
解决上述问题的思考:
1、能否把集成测试时间提前?
2、能否使用自动化工具代替人工集成部署的过程?
持续集成的思想是每天要多次将代码合并到主干,并进行集成、测试,这样就可以提早发现错误,进行修正。持久集成也属于DevOps
优点:
1、自动化集成部署,提高了集成效率。
2、更快的修复问题。
3、更快的进行交付。
4、提高了产品质量。
1.此处测试项目集成流程如下:
2.环境搭建
a.安装Jenkins 官网地址:Jenkins官网
具体安装文档网上都有的 没有私信博主也可以
b.安装GitLab(见上文)
c.pom
此文件相比工程原有pom.xml增加了docker-maven-plugin插件,其作用是构建docker镜像并将镜像推送到Docker私有仓库(192.168.101.64:5000)
2.4.创建持续集成任务
1.Jenkins构建一个任务
2.配置git仓库
a.配置git凭证
此凭证用于远程从git仓库克隆工程源代码
输入git仓库的账号和密码,这里如果使用码云,下边需要配置码云的账号和密码。
b.配置git仓库地址,此地址即构建项目的地址
3.maven构建
1、使用shell脚本停止容器、删除容器、删除镜像
远程登录192.168.101.64(测试服务器)
停止test-center容器
删除test-center容器
删除192.168.101.64:5000/test-center:1.0-SNAPSHOT镜像
shell脚本如下:
#!/bin/bash
result=$(docker ps | grep “192.168.101.64:5000/xc-govern-center”)
if [[ “$result” != “” ]]
then
echo “stop xc-govern-center”
docker stop xc-govern-center
fi
result1=$(docker ps -a | grep “192.168.101.64:5000/xc-govern-center”)
if [[ “$result1” != “” ]]
then
echo “rm xc-govern-center”
docker rm xc-govern-center
fi
result2=$(docker images | grep “192.168.101.64:5000/xc-govern-center”)
if [[ “$result2” != “” ]]
then
echo “192.168.101.64:5000/xc-govern-center:1.0-SNAPSHOT”
docker rmi 192.168.101.64:5000/xc-govern-center:1.0-SNAPSHOT
fi
2、执行maven构建
执行如下maven指令:
clean package -f test-center/pom_docker_registry.xml -DskipTests docker:build
3、拉取镜像,创建容器,启动容器
从docker私有仓库拉取镜像并创建容器,启动容器
显示容器运行日志
docker run --name test -p 50101:50101 -idt 192.168.101.64:5000/test:1.0-SNAPSHOT
docker logs -f test
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
174 道运维工程师面试题128道k8s面试题108道shell脚本面试题200道Linux面试题51道docker面试题35道Jenkis面试题78道MongoDB面试题17道ansible面试题60道dubbo面试题53道kafka面试18道mysql面试题40道nginx面试题77道redis面试题28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
推荐文章
发表评论