Docker实践之Jenkins

前言

其实使用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的镜像加速器

《Docker实践之Jenkins》

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容器需要注意的点

  1. 端口映射
  2. 文件挂载,数据库这些需要把存储的文件挂载出来
  3. 如果需要在容器内使用docker命令,挂载docker相关目录

最后

看到这里的观众,关注吧,关于技术的一切我都有可能分享

《Docker实践之Jenkins》

    原文作者:土豆肉丝盖浇饭
    原文地址: https://www.jianshu.com/p/3804e5e1024a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞