2020年,听到实习时候的同事跟我谈到了docker这个技术,当时听得云里雾里,实在也是不明白,回到家自己想配置,发现电脑装了VMware,不能同时存在docker。当时还在准备2020年11月软考的网络工程师,这docker也就一直搁置了。
2022年,自己离职后,在B站看到jenkins这个技术,就在自己物理机搞了一整套流程下来,顺了一遍,感觉这技术太牛逼了。
2022年11月,看到好多岗位都要求会docker,硬着头皮,自己从网上找帖子看怎么装docker,发现竟然只需要一个exe包就可以装上,以前的VMware没有影响了。装上后,简单做了几个示例,运行起来简直太快了!
就在想怎么将docker和jenkins结合起来,在网上看了一些文档,想想还是自己写一份吧。
Docker Desktop - Docker,下载自己电脑适用的系统(本文以Windows 64位为例)。
基本是傻瓜式安装就可以。
安装好后,准备在docker内配置jenkins。
先说几个在docker中的概念(以我的理解进行解释的,如有错误敬请指正):
仓库:分为公共仓库和私有仓库。公共仓库可以理解为和GitHUB等仓库一样,内部存放了巨多官方制作好的不同版本不同应用程序的镜像。私有仓库可以理解为自己账号下的GitHub仓库,内部可以存放自己做好的镜像文件,这样就可以无论在哪里登录,配置docker为自己的账号,就可以从自己仓库pull(拉取)镜像并快速安装。
镜像:玩计算机的同学们大多都装过系统的吧,这里的镜像就和系统镜像类似,不过这里的镜像因为实在是太多了,有官方镜像,也有网上开发者做好的镜像。有的镜像内还搭好了各种环境,如Mysql、Oracle、Nginx、Jenkins等环境,这样我们如果需要,直接pull需要的镜像到我们本地安装即可。
容器:可以理解为VMware内安装的各个不同的系统,但是在VMware里的系统开机需要几分钟,而在docker的容器内,只需要10秒内,非常便捷!
镜像和容器的关系:就是父类和子类的关系,一个镜像可以生成多个容器(一个镜像可以创建很多一样的系统)。
运行方式:Windows系统下,开个CMD窗口就可以运行。
没有docker hub账号的话,需要到这里进行注册。
docker 登录:docker login
显示Login Succeeded就是登录成功了。
搜索镜像:docker search ubantu
pull镜像:docker pull boystar/ubantu
我这里本地有ubantu,所以显示是这样的,如果没有的话,会从远端拉取,大概几分钟就可以。
查看已有的镜像:docker images
将已有的镜像在后台运行起来:docker run --name test3 -itd boystar/ubantu命令解释:
--name:指定运行起来的这个容器的名字,以方便于开启、关闭、进入等操作。
-i:交互式操作
-t:终端方式
-d:以后台方式运行,即先不进入到容器内。
查看目前所有的容器:docker ps -a
运行容器:docker start test1
test1:容器name,也可以是容器ID
关闭运行的容器:docker stop test1
查看正在运行的容器:docker ps
进入到指定的容器:docker exec -it test1 /bin/bash
test1:容器name,或者也可以是容器ID
/bin/bash:以shell运行
退出容器:exit
在前面步骤,应完成docker安装,并了解docker常用命令。接下来就开始在docker内安装jenkins。
- docker search jenkins
-
- docker pull jenkins/jenkins:lts
-
- docker images
-
- docker run --name jenkins3 -p 7878:8080 -itd jenkins/jenkins:lts
-
- docker ps -a
-
- docker start jenkins
上述命令没有报错的话,jenkins就安装完成了,可以在物理机上访问127.0.0.1:7878端口访问jenkins(本人用的7879端口,大家可以根据自己情况来)。
需要输入密码,那就进入到jenkins容器,查看密码
进入容器:docker exec -it jenkins3 /bin/bash
查看密码:cd /var/jenkins_home/secrets
cat initialAdminPassword
将密码输入到Web页,等待即可(建议开启浏览器记住此密码)。
个人建议新手使用推荐的插件,熟练的同学使用自定义也可以。
为admin设置一个密码
Container 59c7908440efb58700025ca54429e9fa085628014311d1b2dc841625c159ab94 is not running
容器59c7908440efb58700025ca54429e9fa085628014311d1b2dc841625c159ab94没有运行
解决办法:docker start 59c7908440efb58700025ca54429e9fa085628014311d1b2dc841625c159ab94
See 'docker run --help'.
检查命令中的顺序是否有误、检查命令中的容器名是否有误、检查命令拼写是否错误
Error response from daemon: Get "https://registry-1.docker.io/v2/": unauthorized: incorrect username or password
检查输入的用户名密码是否错误
Error response from daemon: manifest for jenkins:latest not found: manifest unknown: manifest unknown
没有找到对应的jenkins镜像
解决办法:查找有的jenkins镜像:docker search jenkins,再选择已有的镜像pull:docker pull jenkins/jenkins:lts