docker安装jenkins k8s和docker区别
- 科技
- 2023-08-14 11:48:25
- 131
本篇文章给大家谈谈docker安装jenkins,以及k8s和docker区别对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位...
本篇文章给大家谈谈docker安装jenkins,以及k8s和docker区别对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
openshift架构详解
主要包含以下组件:
Kubernetes:OpenShift基于Kubernetes构建,提供了Kubernetes所有功能,并且扩展了更多的特性。OpenShift集成了Kubernetes的APIServer、Scheduler、ControllerManager和etcd等组件,同时添加了更多的控制面和数据面扩展,例如基于网络的路由和负载均衡、SDN网络、存储管理等。
Docker:OpenShift使用Docker容器来打包应用程序,并提供了构建、部署和管理Docker镜像的功能。
OpenShiftOrigin:OpenShiftOrigin是OpenShift的开源版本,它提供了所有OpenShift的核心功能,包括多租户管理、应用程序构建和部署、自动伸缩等。
OpenShiftEnterprise:OpenShiftEnterprise是RedHat提供的商业版本,提供了更多的安全性和管理特性,并且支持更多的云平台和部署选项。
OpenShiftClientTools:OpenShiftClientTools是OpenShift提供的命令行工具,可以帮助用户创建和管理OpenShift的应用程序、路由、服务等。
OpenShiftMarketplace:OpenShiftMarketplace是OpenShift提供的应用程序市场,可以帮助用户快速构建和部署常见的应用程序,例如WordPress、Drupal、Jenkins等。
如何在docker里部署nodejs
以下是基于jenkins镜像中增加nodejs的Dockerfile,如果不行就看能不能手动的下载http://nodejs.org/dist/v8.7.0/node-v8.7.0-linux-x64.tar.gz。然后安装一个cnpm来利用阿里的仓库来进行安装具体的组件。
FROMjenkinsci/jenkins:ltsMAINTAINERtopsec"xxxxxxxxx"USERroot#basicpackagesRUNapt-getupdate-qq&&apt-getinstall-qqy\pythonENVNODEJS_VERSION8.7.0RUNmkdir/nodejs&&curlhttp://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-x64.tar.gz|tarxvzf--C/nodejs--strip-components=1ENVPATH=$PATH:/nodejs/binRUNnpminstall-gcnpmRUNcnpminstall-gnode-sass@angular/cli@latestRUNnode-v&&npm-v&&python-V&&ng-v项目为什么用docker
项目为什么要用docker,需要了解docker的优势,结合项目的实际情况来决定是否需要使用docker,千万不能“为了使用而使用”或者“跟风使用docker”。
使用docker是为了快速交付和传统的虚拟机相比,docker具有所用的资源更少、性能更高、隔离级别更高、安全性方面也更强等特点,让我们看看下面几个场景,估计你会有更深的体会。
01.移植性更强
相信开发人员都会遇到这样的问题:代码在本地跑的好好的,但是一发布到测试环境怎么就有问题了呢?
通常我们的的代码包需要依赖于环境中的很多因素,比如配置文件、依赖库、中间件的配置等等,其中一项有问题可能都会导致我们代码出现问题;对于开发人员来说,最希望的就是我们的代码能够一次创建,在任意地方都能运行。
而使用docker之后,可以实现开发、测试、运维环境的标准化,镜像文件直接做为交付物,避免了因为环境不同导致的各种问题。
02.更容易扩展
docker容器可以在任意平台运行,不管是物理机还是虚拟机,不管是公有云还是私有云,甚至是个人电脑,所以我们的项目容易做迁移和扩展。
比如我们应用部署了两台机器,当我们想再扩展第三台机器的时候,我们需要先搭建好代码运行所需的环境,尽管虚拟机也有一些快速copy的技术,但是这个过程依然是很慢的,而且有些环境配置还容易出错,而有了docker,只需要构建镜像然后运行即可,非常方便快速。
因为docker快速的构建方式,也让我们的项目可以实现自动且快速的扩容和缩容。
03.更加轻量
在docker出现之前,通常会采用物理机上部署多台虚拟机,每个应用都部署在一个虚拟机中;但是虚拟机非常的重,虚拟机的构建速度通常都是按照分钟计算,占用的资源比较多。
而docker的速度很快,秒级,并且使用的资源更少,性能更高;同样一个物理机器,docker运行的镜像数量远多于虚拟机的数量。
使用docker只是快速交付的一部分docker的优点这么多,那是不是用了docker之后,我们的交付速度更快了呢?
我见过一个项目,他们号称已经微服务化了,当然他们确实也做到了:把一个项目拆成了数个服务,每个服务在生产环境上部署了多套,算下来就是N*M个应用包(七八十个),都做了容器化...
但是他们依然是人肉运维,也是就是他们每次提测和上线需要手动部署,没有自动化测试和发布;
生产环境发生问题的时候,需要手动去拿日志跟踪问题,开发和运维依然是两个团队,甚至是所属两个不同的部门,沟通的成本很高;
他们虽然实现了容器化,但其实并没有实现快速交付,甚至比传统的方式更慢了。
所以,不要为了docker而docker;如果你们的项目环境配置复杂,每来一个新人配置环境都需要一两天;每次提测和上线,经常问题都是运行环境的问题;开发人员的开发环境不统一;开发能力强,运维能力弱的时候,甚至公司比较穷,想实现资源使用的最大化,都可以考虑使用docker,不过像要做微服务化+容器化,当容器集群规模比较大的时候,还需要工具做容器的自动化管理和编排,自动化测试及部署等等。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。用Jenkins打包docker镜像的时候,怎么把版本号加上去
直接加参数不行吗
公司技术同事在讨论搭建一个Docker镜像自动构建系统,该怎么做
一个非常好的问题。我是工作多年的Web应用架构师,来回答一下这个问题。欢迎关注我,了解更多IT专业知识。
Docker是一个开源的应用容器引擎,将应用以及依赖打包到一个可移植的镜像中,部署到服务器并运行在Container容器实例中。
构建Docker镜像时,在实际使用中有一些误区:
1,Docker镜像由工程师在本地构建,然后推送到Dockerhub或者其他镜像仓库。
2,程序编译打包使用Jenkins自动构建,得到运行包后上传到代码库中,手动或者自动构建Docker镜像。
3,。。。
Docker镜像应该通过自动构建系统,从源代码开始,编译打包,构建镜像,不应该手动上传下载运行包,也不应该使用预先编译好的运行包。
阿里云容器镜像服务提供Docker镜像仓库托管,配置项目代码Git仓库和构建规则,轻松实现自动化。进一步结合Dockerfile强大功能实现云端编译打包。
操作演示:https://www.ixigua.com/i6802181124291461639/
详细配置步骤:https://www.toutiao.com/i6802179342320271879/
你用docker做过什么好玩或者有逼格的事情
使用Docker搭建Jenkins+python3+selenium\helium项目项目背景
用python3在本地写了一个项目,这个项目采用helium+selenium+chrome进行界面操作,代码放在gitee上托管。现在基本功能已经实现,想在Linux服务器上部署项目代码,实现自动构建。
自动构建解决方案自动构建工具选型:jenkins中间件选型:docker代码运行环境:python3脚本运行工具:Chrome浏览器、chromedriver、helium库Ⅰ、安装dockerLinux系统中安装dockercurl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun
docker镜像国内加速vim/etc/docker/daemon.json
{
"registry-mirrors":[
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
#重启服务
systemctldaemon-reload
systemctlrestartdocker
Ⅱ、安装jenkins在Linux上任意路径,创建一个用于存放Jenkins文件的文件夹"jenkins_py"mkdirjenkins_pydockerrun-itd--name=jenkins_py-p8989:8080-p50001:50000-v$PWD:/var/jenkins_home--privileged=true-urootjenkins/jenkins
访问jenkins:http://ip:8989出现输入密码页面时,获取密码:方法1:#进入容器
dockerexec-it-urootjenkins_py/bin/bash
#查看密码
cat/var/jenkins_home/secrets/initialAdminPassword
方法2:#在当前宿主linux机器上,进入前面自己创建的jenkins_py文件夹
cdsecrets
catinitialAdminPassword
复制密码,填入Web页面的密码框,在选择安装插件页面,点击安装推荐插件,等待插件自动安装
Ⅲ、容器安装必要软件进入容器dockerexec-it-urootjenkins_py/bin/bash
安装更新#安装更新
apt-getupdate
#查看系统
cat/etc/issue
#此时容器默认的系统为debain9
#debain默认的软件源非常慢,可以更换为国内阿里源
#安装vim
apt-getinstall-yvim
apt-getinstall-ywget
#更换源为阿里源
vim/etc/apt/sources.list
debhttp://mirrors.aliyun.com/debian/stretchmainnon-freecontrib
deb-srchttp://mirrors.aliyun.com/debian/stretchmainnon-freecontrib
debhttp://mirrors.aliyun.com/debian-securitystretch/updatesmain
deb-srchttp://mirrors.aliyun.com/debian-securitystretch/updatesmain
debhttp://mirrors.aliyun.com/debian/stretch-updatesmainnon-freecontrib
deb-srchttp://mirrors.aliyun.com/debian/stretch-updatesmainnon-freecontrib
debhttp://mirrors.aliyun.com/debian/stretch-backportsmainnon-freecontrib
deb-srchttp://mirrors.aliyun.com/debian/stretch-backportsmainnon-freecontrib
#更新系统
apt-getupdate
#安装libssl-dev
apt-getinstalllibssl-dev
Ⅳ、配置Web自动化环境下载浏览器百度搜索"chromeforlinux",下载适合debain版本的Chrome浏览器把下载的文件上传到Linux机器下载浏览器驱动下载Chrome浏览器Linux对应版本的驱动把下载的文件上传到Linux机器Jenkins容器中,安装Chrome浏览器#把chrome文件,复制到上面创建的jenkins_py文件夹
cpgoogle-chrome-stable_current_amd64_85.0.4183.102.deb./jenkins_py/
#进入容器
dockerexec-it-urootjenkins_py/bin/bash
cd/var/jenkins_home
chmod+xgoogle-chrome-stable_current_amd64_85.0.4183.102.deb
dpkg-igoogle-chrome-stable_current_amd64_85.0.4183.102.deb
配置浏览器驱动#解压驱动zip包
unzipchromedriver_linux64.zip
#拷贝到jenkins_py文件夹
cpchromedriver./jenkins_py/
#进入容器
dockerexec-it-urootjenkins_py/bin/bash
cd/var/jenkins_home
chmod+xchromedriver
mvchromedriver/usr/bin/
cp/usr/bin/chromedriver/usr/local/bin/
Ⅴ、安装python3安装python3apt-getinstall-ypython3
安装pip#下载pip
wgethttps://bootstrap.pypa.io/get-pip.py
python3get-pip.py
pip3install--upgrade--force-reinstallsetuptools
修改系统默认python版本为python3cd/usr/bin
ls-lpython*
#查看上面的python3的版本
rm-rfpython
ln-spython3.5pythonpython3.5
#修改为上面对于的python3版本*修改pip源
修改pip源vim/etc/pip.conf
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/
Ⅵ、jenkins配置任务创建任务配置Git配置构建触发器(可选)配置构建脚本pipinstall-rrequirements.txt执行项目根目录中的requirements.txt文件,自动安装项目需要的库,这样就不用担心代码引入了新库,而Jenkins中不存在,导致报错了。
cp../../tools.ini$PWD/src/conf拷贝配置文件。因为gitee托管项目时,没有提交ini带私密信息的配置文件
pythonmain.py用python执行项目
构建注意:用docker+jenkins来运行selenium的项目,是无图形界面的,所以项目中,浏览器必须采用无头模式
#参考代码
self.options=ChromeOptions()
self.options.add_argument('--headless')
self.options.add_argument('--no-sandbox')
self.options.add_argument('--disable-gpu')
self.options.add_argument('--disable-dev-shm-usage')
start_chrome(headless=True,options=self.options)
好了,项目构建成功。整个构建步骤、方法,你学会了吗?
docker安装jenkins和k8s和docker区别的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!
本文链接:http://wxnzbj.com/ke/33.html