关于我用Docker安装Jenkins这件事(最终成功,持续更新中)

本文主要讲述了自己jenkins的安装,构建,持续集成,持续部署,Docker Desktop的使用中碰到的一些问题和解决方法

早上十点开始准备这件事,直到现在下午两点四十才完成,期间经历了很多成长

一开始用的是网上弄来的资料里的tar包.解压之后很多插件无法下载.忘了截图了.大概的意思就是我当前的jenkins版本过低

接着删除了现有的jenkins容器和镜像,直接docker pull jenkins拉取最新的镜像.当容器成功运行后.输完生成的密码,An error occurred during installation: No such plugin: cloudbees-folder.直接报这个插件找不到.

然后来csdn上寻求经验,有大神的帖子是需要 docker pull jenkins/jenkins.拉取是jenkins/jenkins的最新镜像.下载插件的时候,又是报了很多当前版本不满足的提示,搞到这里人有些抓狂了.好在我耐心不错

最新的镜像都不行,去哔站看看教程.发现有老师在jenkins上面下载的war包.我也去下载了一个,上传到服务器上去,java -jar jenkins.war.当前java版本不支持.需要jdk11才行.想着java8更加通用点,自己写代码用的也是java8.放弃了更新.

然后又回到了docker官网去搜镜像.搜索jenkins/jenkins.在下面找到了很多版本.后面有带jdk11.jdk17的字眼,应该也是对jdk有要求.往后面翻.看到了2.404-alpine.试一试

docker pull jenkins/jenkins:2.404-alpine
docker run \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-home:/var/jenkins_home \
--privileged=true \
-d \
jenkins/jenkins:2.404-alpine
这是进入挂载的数据卷
cd /var/lib/docker/volumes/jenkins-home/_data

分别执行下面三段命令,修改原有的地址,需要在上面的目录下执行

sed -i 's#https://updates.jenkins.io/update-center.json#https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json#g' /var/lib/docker/volumes/jenkins-home/_data/hudson.model.UpdateCenter.xml
sed -i 's#http://www.google.com#https://www.baidu.com#g' updates/default.json
sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' updates/default.json
这里是重启容器
docker restart jenkins
此时在页面就可以访问了,需要密码,密码在这个文件下
/var/lib/docker/volumes/jenkins-home/_data`secrets/initialAdminPassword

或者通过下面的命令查看运行时日志也能看到
docker logs jenkins

后面的都是一路绿色.接下来的持续集成到也会在这里慢慢更新

接着上面的来,说说docker.关于docker安装的一些常见应用.我有一篇帖子记录了.感兴趣的可以看看

这一段就了一下docker的镜像仓库吧

阿里云的镜像仓库地址 https://cr.console.aliyun.com/cn-hangzhou/instances
在这里插入图片描述
复制一下这个地址.每个人的都不一样,无需花钱.

vi /etc/docker/daemon.json


修改成这个样子,下面的一个是把docker自己的私服仓库添加到可信的,一会也会说道

在这里插入图片描述

在这里插入图片描述

systemctl restart docker

重启一下docker
先登录上阿里云镜像仓库,其实都有详细说明.下面说docker自己的私服了在这里插入图片描述

docker自己的私服

docker run --name  registry --restart=always -p 5000:5000 -v registry-data:/var/lib/registry registry

因为前面已经添加了授信的,也重启了.所有可以直接用了

在这里插入图片描述

如图,我这里有个nginx镜像.把镜像上传到私服去

打包
docker tag nginx:latest 127.0.0.1:5000/nginx:1.0
上传
docker push 127.0.0.1:5000/nginx:1.0
拉取
docker pull 127.0.0.1:5000/nginx:1.0

镜像仓库的删除我还要接着去学习.感觉有点难搞

jenkins的镜像构建

总的经过了15次的构建才能成功,一路的问题解决.给新人成长了不少
主要就是我的idea里面的pom文件配置.配置如下


    <build>
        <finalName>app</finalName>
        <plugins>
            <!-- 打jar包时如果不配置该插件,打出来的jar包没有清单文件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version>
                <configuration>
                    <!--阿里云仓库地址,anxing223命名空间,我在这里也翻了很大的坑,主要是命名空间-->
                    <imageName>registry.cn-shanghai.aliyuncs.com/anxing223/${project.artifactId}:${project.version}</imageName>
                    <baseImage>java:8-alpine </baseImage>
                    <entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <serverId>ali-docker</serverId>
                    <registryUrl>registry.cn-shanghai.aliyuncs.com</registryUrl>
                    <!--自己的虚拟机地址-->
                    <dockerHost>http://127.0.0.1:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

很小的一个项目,没有什么东西.上传到gitee上面去了.和jenkins做持续集成的.现在做jenkins的一些配置
在这里插入图片描述
需要把maven上传到服务上
在这里插入图片描述
请注意.maven的settings文件里也需要做相应的配置

  <servers>
      <!-- 我在这里翻了很大的坑.跟着别人填写邮箱.推镜像的时候推不上去 -->
	 <server>
        <id>ali-docker</id>
        <!-- 阿里云用户名,有的人用户名就是邮箱 -->
        <username>用户名</username>
        <!-- 阿里云的密码 -->
        <password> 12345678 </password>
        <configuration>
            <!-- 阿里云镜像加速的用户名邮箱 -->
            <email>123123123123@163.com</email>
        </configuration>
    </server>
  </servers>


	<mirror>
		<id>aliyunmaven</id>
		<mirrorOf>*</mirrorOf>
		<name>阿里云公共仓库</name>
		<url>https://maven.aliyun.com/repository/public</url>
	</mirror>

直接划到最下面.配完后保存
在这里插入图片描述
在这里插入图片描述
填写项目地址.这里传到了gitee上,因为是公开的,所以不需要配置密码.现在的gitee默认是私有.所以记得要配置密码之类的,密码就点下面的添加
在这里插入图片描述
这里的就是maven插件,清理,打包啥的.功能idea里的那些

clean package -DskipTests docker:build -DpushImage

在这里插入图片描述
我到这里构建了一次,还是翻车了.错误提示如下

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:1.2.0:build (default-cli) on project docker_demo: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: com.spotify.docker.client.shaded.org.apache.http.conn.HttpHostConnectException: Connect to 124.220.158.127:2375 [/124.220.158.127] failed: Connection refused (Connection refused) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[JENKINS] Archiving /var/jenkins_home/workspace/docker_demo/pom.xml to com.itheima.sh/docker_demo/1.0/docker_demo-1.0.pom
[JENKINS] Archiving /var/jenkins_home/workspace/docker_demo/target/app.jar to com.itheima.sh/docker_demo/1.0/docker_demo-1.0.jar
channel stopped
Finished: FAILURE 

大概就是说docker守护进程的问题,上面pom文件里不是配置了一个2375的端口吗.问题出在了这里

我通过这个命令查看发现并没有2375的字眼.所有该端口并没有使用
sudo systemctl status docker
通过该命令修改文件
sudo nano /lib/systemd/system/docker.service
或者使用vi编辑
sudo vi /lib/systemd/system/docker.service

在文件中找到这一行,前面的一段覆盖成下面这个样子,主要就是添加端口暴露,Ctrl+O保存,Ctrl+x退出

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

重新加载文件

sudo systemctl daemon-reload

重新启动docker

sudo systemctl restart docker.service

到此再去重新构建jenkins.就成功了
在这里插入图片描述
太不容易了.到这里只是构建成功,还没有部署.接下来会学习Rancher进行部署,持续更新中

自动构建(持续集成)

这里用的代码托管平台的gitee.需要在jenkins中安装插件,我这里已经安装好了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成好的令牌记得存一下.只展示一次,在jenkins中需要使用到

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
旁边有个测试按钮.可以测一下是否能通

修改任务的配置在这里插入图片描述

在这里插入图片描述
这里需要生成密码给git使用.然后点击保存

gitee配置

在这里插入图片描述
在这里插入图片描述
这个地址需要复制一下.配置在gitee的webhooks中
在这里插入图片描述
密码就是刚刚jenkins上生成的那个,然后点击添加
在这里插入图片描述
添加完成后可以测试一下
在这里插入图片描述
持续集成到这里就弄完拉

持续部署

持续部署这边用的是Rancher的第一个版本.

docker pull rancher/server
docker run -d --name=myrancher -p 8088:8080 rancher/server

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
我这里是jenkins部署在一台机器上.,rancher部署在一台机器上.用的都是轻量级云服务器.最低配的.一台起这两个服务必崩
在这里插入图片描述
在这里插入图片描述
这个页面我什么也没设置,但是需要复制这个.在节点主机上运行,以后需要部署服务的时候,可以选择在注册的主机上部署了
在这里插入图片描述
节点弄完了之后点击关闭,然后注册上来的主机如图
在这里插入图片描述
配置阿里云镜像地址
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

刚好这几天在学docker.从未有过部署经验的小白.得到了公司项目部署的机会.今天初步准备了一下.明天得去部署了.今天又接触到了一款很厉害的软件 Docker Desktop.有需要的兄弟可以去官网看看,功能很强大,可以直接把你本地的代码,或者git上的代码打包成镜像运行.这里就分享一下我安装和使用中踩到的坑

我电脑的系统是win10家庭版.在官网上下载完毕后,正常的安装.启动的时候会有个弹框提示,然后没一会就闪退了.我没有截图,查了查网上的指导很多.我按照弹框提示的连接点进去后.安装了一些环境.但是还是闪退.
解决
在这里插入图片描述
输入了这个命令后重启电脑就解决了.

netsh winsock reset

环境变量,安装好docker desktop,也需要去配置环境变量.在path里添加下面的路径,大部分人的路径应该都是一样的.可以自己核对一下

C:\Program Files\Docker\Docker\resources\bin

然后感觉英文看着很不舒服.想换成中文.但是搞了半天也没搞成功.不知道网上说的那些设置在哪.我的是最新版本
后面准备远程连接我的阿里云的镜像仓库.


docker login --username=xxxx registry.cn-hangzhou.aliyuncs.com

我在cmd窗口里用完这条命令.然后提示我输入密码.但是却报错

Post "https://hub.docker.com/v2/users/login?refresh_token=true": 
dialing hub.docker.com:443 with direct connection: connecting to 199.59.148.209:443: 
dial tcp 199.59.148.209:443: connectex: A connection attempt 
failed because the connected party did not properly respond after a period 
of time, or established connection failed because connected host has failed to respond.
大概意思就是这个吧
你收到的错误信息表明在连接到Docker Hub服务器时遇到了问题,
IP地址为199.59.148.209,端口为443(HTTPS)。
错误具体指出连接尝试失败,原因可能是服务器在一段时间后没有正确响应,
或者已建立的连接因为连接的主机未能响应而失败。

打开防火墙
在这里插入图片描述

在这里插入图片描述
然后就可以成功登录到远程仓库了.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值