步骤一:node
查找jenkins镜像(也能够直接去jenkins官网找镜像docker pull jenkins/jenkins)(官方版本文档https://hub.docker.com/_/jenkins/)docker
[root@localhost docker]# docker search jenkins NAME DESCRIPTION STARS OFFICIAL AUTOMATED jenkins Official Jenkins Docker image 4153 [OK] jenkins/jenkins The leading open source automation server 1326 jenkinsci/jenkins Jenkins Continuous Integration and Delivery … 355 jenkinsci/blueocean https://jenkins.io/projects/blueocean 339 jenkinsci/jnlp-slave A Jenkins slave using JNLP to establish conn… 101 [OK]
步骤二:浏览器
下载镜像(下载过程能够看到镜像层次,每一层都是新的镜像)网络
[root@localhost docker]# docker pull jenkins Using default tag: latest latest: Pulling from library/jenkins 55cbf04beb70: Pull complete 1607093a898c: Pull complete 9a8ea045c926: Pull complete d4eee24d4dac: Pull complete c58988e753d7: Pull complete 794a04897db9: Pull complete 70fcfa476f73: Pull complete
步骤三:tcp
经过镜像建立一个容器运行并能够提供给外部访问spa
容器中能够运行一些网络应用,要让外部也能够访问这些应用,能够经过 -P
(大写) 或 -p
(小写) 参数来指定端口映射。3d
当使用 -P 标记时,Docker 会随机映射一个 49000~49900
的端口到内部容器开放的网络端口。code
-p(小写)则能够指定要映射的IP和端口,可是在一个指定端口上只能够绑定一个容器。支持的格式有 hostPort:containerPort
、ip:hostPort:containerPort
、 ip::containerPort
。server
新建一个目录用于容器内目录挂载映射并修改目录权限,否则后期使用过程当中会由于权限报错blog
[root@localhost soft]# mkdir jenkins_home [root@localhost soft]# ls jenkins_home node [root@localhost soft]# chown -R 1000 jenkins_home
[root@localhost docker]# docker run -dit --name myjenkins -p 8082:8080 -v /usr/local/soft/jenkins_home:/var/jenkins_home jenkins bfbcca966a49390a960304e83f47a1d3587ac27bfb7194056c011810306b3766 [root@localhost docker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bfbcca966a49 jenkins "/bin/tini -- /usr/l…" 6 seconds ago Up 5 seconds 50000/tcp, 0.0.0.0:8082->8080/tcp myjenkins
-p:此处我将本机的8082端口映射到容器的8080端口上(jenkins默认端口8080)
-v:将容器内的文件夹映射到主机上,前面是主机目录,后面是容器目录
步骤四:
从浏览器访问jenkins作相关配置,同我以前的其余jenkins使用教程同样
访问以后输入这个文件下的内容:
/var/jenkins_home/secrets/initialAdminPassword
ps:一开始使用镜像生成并启动容器时我没有-v作目录挂载,遇到了一个很奇怪的问题,每次访问jenkins都会要我输入
initialAdminPassword文件内容,有时候还会一直在访问jenkins中,作了目录挂载以后,这个问题就没出现过了