jenkins和docker 在docker里運行jenkins


在docker里運行jenkins server。

文章來自:http://www.ciandcd.com
文中的代碼來自可以從github下載: https://github.com/ciandcd

1. 安裝docker
簡單地理解docker是一個類似於虛擬機的容器,提供一個相對獨立且與host隔離的環境, docker比虛擬機更輕量級,可以用來軟件的測試,打包,發布,運行等。
安裝docker,我的是ubuntu 16.04的環境,通過如下命令簡單地安裝:
sudo apt install docker docker.io
檢查docker安裝成功:
sudo docker info

Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 2
Server Version: 1.11.2
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 104
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.4.0-28-generic
Operating System: Ubuntu 16.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.954 GiB
Name: osboxes
ID: WSS3:LUQM:265S:YA4B:VGLL:PK6K:3MCT:FN2W:NLED:2O7Q:NOET:FWKV
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support

 
2. 下載jenkins docker image
在hub.docker.com( https://hub.docker.com/r/jenkinsci/jenkins/)上可以看到jenkins的image的下載方法。
在命令行執行如下命令將下載jenkins的image:
sudo docker pull jenkinsci/jenkins
 
3. 運行jenkins docker
在運行之前可以先查看jenkins的dockerfile( https://github.com/jenkinsci/docker/blob/master/Dockerfile),通過jenkins的dockerfile大概可以了解jenkins的docker image里包含和設置了什么。
 
准備jenkins的log配置文件:
cd /home/osboxes/jenkins_home_docker
cat > log.properties <<EOF
handlers=java.util.logging.ConsoleHandler
jenkins.level=FINEST
java.util.logging.ConsoleHandler.level=FINEST
EOF
 
運行jenkins的docker image:
sudo docker run --name myjenkins -p 8088:8080 -p 50000:50000  -d --env JAVA_OPTS="-Xmx8192m" --env JAVA_OPTS="-Djava.util.logging.config.file=/home/osboxes/jenkins_home_docker/log.properties"  --env JENKINS_SLAVE_AGENT_PORT=50000 -v /home/osboxes/jenkins_home_docker:/var/jenkins_home  jenkinsci/jenkins
 
docker命令行解釋:
docker實例的名字: --name myjenkins,此docker實例的名字為myjenkins。
docker端口映射: -p IP:host_port:container_port, -p 8088:8080 將docker里的8080映射到host中的8088。
環境變量: --env name=value。
目錄映射: -v localdir:dockerdir, -v /home/osboxes/jenkins_home_docker:/var/jenkins_home  jenkinsci/jenkins將docker里的JENKINS_HOME /var/jenkins_home映射為host中的/home/osboxes/jenkins_home_docker。
運行的docker image: jenkinsci/jenkins
-d: docker instance將作為demon在后台運行。
如果是java1.7及以前版本,組好設定--env  JAVA_OPTS=”-Xmx8192m -XX:PermSize= 256m -XX:MaxPermSize=1024m”, java1.8后的直接--env JAVA_OPTS="-Xmx8192m"。
 
檢查jenkins docker是否運行:

sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14fc572bc91c jenkinsci/jenkins "/bin/tini -- /usr/lo" 18 hours ago Up 18 hours 0.0.0.0:50000->50000/tcp, 0.0.0.0:8088->8080/tcp myjenkins

 

4. 配置Jenkins

在瀏覽器中打開jenkins,然后配置jenkins,到此時就跟我們之前講的jenkins沒有差別了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM