在 Docker 中下载并运行 Jenkins

DockerJenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their softwarehttps://www.jenkins.io/doc/book/installing/docker/#downloading-and-running-jenkins-in-docker1.

docker network create jenkins

2.

docker run --name jenkins-docker --rm --detach \
  --privileged --network jenkins --network-alias docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume jenkins-docker-certs:/certs/client \
  --volume jenkins-data:/var/jenkins_home \
  --publish 2376:2376 \
  docker:dind --storage-driver overlay2

Unable to find image 'docker:dind' locally
dind: Pulling from library/docker

rm会在容器关闭时自动删除dokcer的容器;detach表示在后台运行容器;

/certs/client将容器内的目录映射到jenkins-docker-certs上面创建的命名的 Docker 卷

/var/jenkins_home将容器内的目录映射到名为 的 Docker 卷jenkins-data

在主机上公开 Docker 守护程序端口2376

overlay2是Docker 卷的存储驱动程序

下载docker:dind的时候有一个6M多的下载会比较慢

这步完了以后docker images可以查看到多了一个镜像:docker:dind

3.

cd ~

mkdir JenkinsDockerfile

cd JenkinsDockerfile

touch Dockerfile

vim Dockerfile 

该文件名首字母要大写,必须用这个名字,否则会报错:failed to solve: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount869682785/Dockerfile: no such file or directory

按键i进入编辑模式,把以下内容添加进去并保存:

FROM jenkins/jenkins:2.387.2
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
  https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
  signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
  https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"

在当前路径下执行:

docker build -t myjenkins-miao59:2.387.2-1 .

报错:

 => ERROR [5/6] RUN apt-get update && apt-get install -y docker-ce-cli                                                         0.2s
------                                                                                                                              
 > [5/6] RUN apt-get update && apt-get install -y docker-ce-cli:                                                                    
#0 0.226 E: Malformed entry 1 in list file /etc/apt/sources.list.d/docker.list ([option] too short)
#0 0.226 E: The list of sources could not be read.
------
Dockerfile:10
--------------------
   8 |       https://download.docker.com/linux/debian \
   9 |       $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
  10 | >>> RUN apt-get update && apt-get install -y docker-ce-cli
  11 |     USER jenkins
  12 |     RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
--------------------
ERROR: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y docker-ce-cli" did not complete successfully: exit code: 100

解决:去这个网站4.a复制该内容并重新写入到Dockerfile文件中去

4.

docker run --name jenkins-blueocean --restart=on-failure --detach \
  --network jenkins --env DOCKER_HOST=tcp://docker:2376 \
  --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
  --publish 8080:8080 --publish 50000:50000 \
  --volume jenkins-data:/var/jenkins_home \
  --volume jenkins-docker-certs:/certs/client:ro \
  myjenkins-miao59:2.387.2-1

容器停止会重新启动容器。如果手动停止,则只有在Docker守护进程重启或容器本身手动重启时才会重启。

--detach 是在后台运行,也可以用 -d

仍会出现格式不对的问题,应该是复制到csdn后有啥毛病,去参考网站copy代码过来就可以了

运行以后docker ps -a可以看到该容器正在后台运行

5.

在宿主机浏览器中打开:http://localhost:8080

sudo docker exec 容器ID cat /var/jenkins_home/secrets/initialAdminPassword

把这串密码在复制到密码栏并安装建议的插件

6.

等待安装完成后,创建第一个管理员用户账号和密码,并设置jenkins的地址为:

http://ip:port/

这样局域网的设备也可以访问

可以根据需要选择是否将Jenkins设置为中文语言

相关有用的参考链接:

https://www.cnblogs.com/hailun1987/p/16631594.html

Jenkins设置中文以及设置中文失效的问题_清宵尚温。的博客-CSDN博客

发现jenkins通过web restart以后,实际上stop了,没启动

Jenkins refuses to restart - Stack Overflow

docker下配置的jenkins在虚拟机重启后消失,实际上是开机后不能自启_深挖测试这口井的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值