前言
其实使用Docker安装Jenkins是超级简单的,本文的主要目的是,通过使用Docker安装Jenkins的实践,总结Docker启动一个镜像需要注意的点
Docker安装
安装docker对照着官方的文档即可
centos安装docker文档(https://docs.docker.com/install/linux/docker-ce/centos/#install-using-the-repository)
文档相当详细,对于没有安装过docker的centos系统,执行以下命令
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce
sudo systemctl start docker
执行完上述命令后服务器上的docker环境就启动好了
我们可以通过
sudo docker run hello-world
来测试docker是否启动成功
在docker安装成功之后,我们可以使用docker仓库内存在的镜像配置我们的应用或者自己来建立镜像
具体教程还是看docker官方提供的,如下
docker入门文档(https://docs.docker.com/get-started/)
发现一篇总结的还行的文章
docker常用命令详解(https://blog.csdn.net/permike/article/details/51879578)
其实也可以通过docker提供的help提示来看具体指令,比如
docker --help
docker container --help
docker默认的镜像仓库可能有点慢,可以注册以下DaoCloud(https://www.daocloud.io/),然后通过下面的命令设置daocloud的镜像加速器
Jenkins安装
首先看下官方安装文档
docker启动jenkins文档(https://docs.docker.com/samples/library/jenkins/)
在实际使用中,通过
docker run -p 8080:8080 -p 50000:50000 jenkins
启动Docker镜像是达不到我们的要求的
因为Jenkins需要通过maven编译源代码,而上述的镜像内没有安装maven,所以我们编写自己的Dockerfile文件,脚本如下
FROM jenkins/jenkins:lts
USER root
RUN apt-get update && apt-get install -y maven
USER jenkins
然后通过
docker build -t scj_jenkins .
把Dockerfile打包成镜像,在通过
docker run -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /root/jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 -d scj_jenkins
启动这个镜像
-p 用来进行端口映射
-d 代表后台启动
-v 代表目录挂载
注意下宿主机/root/jenkins_home目录需要配置docker内Jenkins用户的权限
chown -R 1000 /root/jenkins_home
与此同时,我们都使用Docker来启动Jenkins,我们肯定也需要使用Jenkins来构建Docker镜像,那么需要使用到docker命令,但是镜像内显然是没有的。
难道和maven一样在docker容器里再安装docker环境??
经过查询资料,我们可以文件挂载的方式使用宿主机的docker命令
-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker
之后就可以通过访问http://ip:8080来访问Jenkins应用了,并且可以使用maven,docker构建项目
关于Dockefile如何书写,可以看官方文档
Dockefile官方文档(https://docs.docker.com/engine/reference/builder/)
关于目录挂载,可以看下面这片文章
关于Docker目录挂载的总结(https://www.cnblogs.com/ivictor/p/4834864.html)
总结
启动一个Docker容器需要注意的点
- 端口映射
- 文件挂载,数据库这些需要把存储的文件挂载出来
- 如果需要在容器内使用docker命令,挂载docker相关目录
最后
看到这里的观众,关注吧,关于技术的一切我都有可能分享