- 编写Dockerfile文件
(1)创建一个目次jenkins,生存干系的设置信息和内容,在#后输入mkdir Jenkins&&cd Jenkins下令,然后按Enter键,创建Jenkins目次并进入该目次。示例代码如下:
[root@xiandian ~]# mkdir jenkins&&cd jenkins
[root@xiandian jenkins]#
(2)创建Dockerfile文件,在#后输入vi Dockerfile下令,然后按Enter键,创建Dockerfile文件。示例代码如下:
[root@xiandian jenkins]# vi Dockerfile
Dockerfile文件的内容,如下所示:
FROM ubuntu:14.04.3
MAINTAINER james@example.com
ENV REFRESHED_AT 2016-12-25
RUN apt-get update -qq && apt-get install -qqy curl apt-transport-https
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:0 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
RUN echo deb https://apt.dockerproject.org/repo ubuntu-trusty main > /etc/apt/sources.list.d/docker.list
RUN apt-get update -qq && apt-get install -qqy iptables ca-certificates openjdk-7-jdk git-core docker.io
ENV JENKINS_HOME /opt/jenkins/data
ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
RUN mkdir -p $JENKINS_HOME/plugins
RUN curl -f -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war
RUN for plugin in chucknorris greenballs scm-api git-client git ws-cleanup; do curl -sf -o $JENKINS_HOME/plugins/${plugin}.hpi -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi; done
ADD ./dockerjenkins.sh /usr/local/bin/dockerjenkins.sh
RUN chmod +x /usr/local/bin/dockerjenkins.sh
VOLUME /var/lib/docker
EXPOSE 8080
ENTRYPOINT [ "/usr/local/bin/dockerjenkins.sh" ]
Dockerfile分析:
l jenkins的dockerfile继续了ubuntu:14.0.4.3镜像。
l apt-key下令用于管理Debian Linux体系中的软件包密钥。每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。
l 安装源参加必要的docker apt堆栈,并安装实验Docker和Jenkins所必要的包。
l 创建“/opt/jenkins”目次,下载jenkins.war到这个目次,并下载Jenkins插件。
l 使用ENV指令把JENKINS_HOME和JENKINS_MIRROR环境变量设置为Jenkins的数据目次和镜像站点。
l 使用VOLUME指令指定/var/lib/docker数据卷,运行容器内部使用宿主机的文件体系作为容器的存储。如许容器的“/var/lib/docker”目次将生存在宿主机体系的“/var/lib/docker/volumes”目次下。
l Jenkins默认对外的8080端口。
l 末了指定要运行的shell脚本,作为容器的启动下令。这个shell脚本资助在宿主机上设置Docker,允许在Docker容器里运行Docker,开启Docker守卫进程,而且启动Jenkins。
(3)使用wget的方式下载dockerjenkins.sh文件,在#反面输入wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/jenkins/dockerjenkins.sh下令,然后按Enter键,下载文件。示例代码如下所示:
[root@xiandian jenkins]# wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/jenkins/dockerjenkins.sh
下载乐成,如图1所示:
(4)设置文件的权限,在#后输入chmod 0755 dockerjenkins.sh下令,然后按Enter键,给dockerjenkins.sh文件授权。示例代码如下:
[root@xiandian jenkins]# chmod 0755 dockerjenkins.sh
(5)构建docker-jnekins镜像,在#反面输入docker build -t jamtur01/dockerjenkins .下令,构建镜像。示例代码如下:
[root@xiandian jenkins]# docker build -t jamtur01/dockerjenkins .
构建镜像乐成,如图2所示:
(6)检察构建的镜像,在#反面输入docker images下令,检察镜像。示例代码如下:
[root@xiandian jenkins]# docker images
查询镜像,如图3所示:
- 构建Jenkins应用
(1) 在#后输入docker run -p 8080:8080 --name jenkins --privileged -d jamtur01/dockerjenkins下令,然后按Enter键,运行docker-jenkins镜像,示例代码如下:
[root@xiandian jenkins]# docker run -p 8080:8080 --name jenkins --privileged -d jamtur01/dockerjenkins
注:若端口被占用,请使用新端标语。
运行乐成,如图4所示:
! |