步驟一: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中,作了目錄掛載以後,這個問題就沒出現過了