编写Dockerfile文件
(1)创建一个目录jenkins,保存相关的配置信息和内容,在#后输入mkdir Jenkins&&cd Jenkins命令,然后按Enter键,创建Jenkins目录并进入该目录。示例代码如下:
[root@it ~]# mkdir jenkins&&cd jenkins
[root@it jenkins]#
(2)创建Dockerfile文件,在#后输入vi Dockerfile命令,然后按Enter键,创建Dockerfile文件。示例代码如下:
[root@it 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@it 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@it jenkins]# chmod 0755 dockerjenkins.sh
(5)构建docker-jnekins镜像,在#后面输入docker build -t jamtur01/dockerjenkins .命令,构建镜像。示例代码如下:
[root@it jenkins]# docker build -t jamtur01/dockerjenkins .
构建镜像成功,如图2所示:
(6)查看构建的镜像,在#后面输入docker images命令,查看镜像。示例代码如下:
[root@it jenkins]# docker images
查询镜像,如图3所示:
构建Jenkins应用
(1) 在#后输入docker run -p 8080:8080 --name jenkins --privileged -d jamtur01/dockerjenkins命令,然后按Enter键,运行docker-jenkins镜像,示例代码如下:
[root@it jenkins]# docker run -p 8080:8080 --name jenkins --privileged -d jamtur01/dockerjenkins
注:若端口被占用,请使用新端口号。
运行成功,如图4所示:
|