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了,没启动