@[TOC] docker搭建,jenkins安装部署镜像打包
记录自己这几天在docker搭建踩到的坑。
前景:因为自己是内网的原因,所以需要用docker镜像来打包下载好的jenkins,下一篇文章会写把项目部署到jenkins上
docker下载和解压
下载docker建议去官网根据自己的centOS版本下载,不建议大家yum install 下载
官网:
link.
https://hub.docker.com/editions/community/docker-ce-desktop-windows/
离线安装包地址:
link.
https://download.docker.com/linux/static/stable/x86_64/
将下载好的docker版本上传至服务器,并解压
tar -zxvf docker-18.06.3-ce.tgz
安装
解压完成之后会有一个docker的文件,我们将文件复制到/usr/bin/目录下
cp docker/* /usr/bin/
在/etc/systemd/system/目录下新增docker.service文件,内容如下,这样可以将docker注册为service服务
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
#the default is not to use systemd for cgroups because the delegate issues still
#exists and systemd currently does not support the cgroup feature set required
#for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
#Having non-zero Limit*s causes performance problems due to accounting overhead
#in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
#Uncomment TasksMax if your systemd version supports it.
#Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
#set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
#kill only the docker process, not all processes in the cgroup
KillMode=process
#restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
此处的–insecure-registry=127.0.0.1(此处改成你私服ip)设置是针对有搭建了自己私服Harbor时允许docker进行不安全的访问,否则访问将会被拒绝
给docker.service加权限
chmod +x /etc/systemd/system/docker.service
启动docker并查看docker状态
systemctl start docker
systemctl status docker
此时docker就安装完成了
设置开机自启:systemctl enable docker.service
创建镜像
下载镜像:docker pull jenkins/jenkins:lts
查看下载好的镜像:docker images
查看是否为最新的docker inspect
启动容器
docker run -d --name Jenkins_01 -p 8081:8080 -v /home/jenkins_home:/home/jenkins_home jenkins/jenkins:lts
容器启动了之后重启docker
systemctl restart docker
docker启了之后我这里出来一个小问题,查找容器没有找到
然后我试着再重新启动容器还是没反应,之后我就重新创建了一个容器,
重新创建容器:docker run -d --name Jenkins_02 -p 8081:8080 -v /home/jenkins_home:/home/jenkins_home -p 50000:50000 -p 45000:45000 jenkins/jenkins:lts
查看容器:docker ps|grep jenkins
容器弄好之后开始导出镜像
docker ps
找到容器的id
然后commet容器
docker commit 2a73cfb6c0f5 jenkins_1.0
然后找到容器打的包所在的位置
find / -name jenkins
然后我们进入包所在的位置,将包下载到自己的优盘,再导入到我们的内网中就ok了