由于项目开发,经常需要在本地搭一些环境进行开发或测试,大家知道搭环境、装软件、装中间件是件非常麻烦的事情,有些软件的安装可能需要依赖其它环境的安装,如安装rabbitmq首先需要Erlang语言环境,一整套安装下来不仅浪费时间而且还各种问题出现,严重影响开发进度。对于开发者来讲,life is short, 尽一切可能提高开发效率。
Docker的出现对于技术界无疑是一件划时代的事件,Docker由于具体丰富的应用镜像仓库、使用方便及可移植性而深受广大IT从业人员喜爱。用Docker部署或安装相应的应用不用花太多时间在安装过程及细节、依赖上,真正做到开箱即用。本文以jenkins的搭建为例,说明Docker的基本操作过程:拉取镜像、运行容器、文件挂载、跟踪运行、关闭容器等,希望对刚入门Docker的技术爱好者能有所帮助。
Docker基本概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。其实Docker最经典的是那张“背有集装箱的海豚”图,这张图充分说明了docker引擎与容器之间的关系。
掌握镜像、容器、仓库基本就对Docker了解得差不多了,就能正确的使用Docker.
- 镜像:可以理解为应用的“源码”或
.exe
安装文件; - 容器:就是镜像运行后的实例,与镜像的关系其实就如“对象”与“类”的关系;
- 仓库:发布镜像的仓库,在仓库中可以下载或拉取各种镜像(应用)
而Docker则是一个容器运行所需要的引擎,所有的容器均运行在引擎之中。
Docker安装过程(Centos6.9)
升级内核
Centos6.9需要升级内核版本才可以安装Docker,升级过程如下
1.引入key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
2.yum安装
yum --enablerepo=elrepo-kernel -y install kernel-lt
3.引导文件修改(grub.conf
)
vim /etc/grub.conf
将 default 设置为 0 ,default=0
4.重启安装docker-io
1.安装EPEL源
yum install http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
2.安装docker-io
yum -y install docker-io
3.启动docker服务
service docker start
基于Docker的jenkins安装
- 拉取应用
运行容器/实例之前,需要从docker hub仓库中拉取相应的镜像,可查看官网关于jenkins镜像上的一些介绍,其中对于安装命令、配置信息及文件目录都有于详细的说明。
从仓库中拉取最新的jenkins,docker pull jenkins
,拉取其它版本的可通过命令docker pull jenkins:<version>
- 运行容器
运行容器/实例,需要考虑到本地端口与docker容器的映射,以便通过本地主机可以访问。由于容器本身并不会持久化文件,其实docker不建议在容器中进行任何文件有关的写入操作,仅仅当作一个“容器”使用。如果容器应用运行过程中会产生许多重要的数据需要保存或配置,如mysql的db文件,jenkins的插件、配置文件等,则建议将容器的文件挂载到本地,也即volume映射。
docker run -p 8080:8080 -p 50000:50000 -v /usr/local/docker_volume/jenkins:/var/jenkins_home -v /usr/local/apps/maven-3.3.9:/var/maven_home -v /usr/local/apps/maven-3.3.9/repo:/usr/local/apps/maven-3.3.9/repo --name my_jenkins -d jenkins
其中-p表示端口映射,即将本机上的端口映射到容器上的端口;
-v表示文件映射,即本机与容器共享映射,挂载文件
注意:由于jenkins构建maven项目需要依赖maven项目,因此在运行容