学习Docker的理由:
最近在部署系统时,发现公司使用的是docker进行部署的,刚开始用的时候不太顺手,感觉很麻烦,先是要修改版本,然后在重新创建镜像,到最后重启容器,可是后来越用感觉越来方便,理由有3:
①使用Docker部署能够将原来的版本进行保存,并不需要你手动进行备份,当然你也可以删除。
②使用docker能更快的启动你的系统,原因后面介绍。
③使用docker课题加快你的开发效率,在一台机器上部署好,可以轻松到移植到任何一台服务器上,只要你的镜像没问题;
综合上面几个理由,我觉得有必要进行docker的入门学习
一、Docker介绍
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台
二、Docker的几个基本概念
如果之前有了解过docker的想必都应该知道镜像、容器、仓库的关键词,这个三个对于没接触过docker的是有一点难理解的,这三个到底是什么关系呢,又都有什么用处呢,接下来我就用"装系统"的过程来给大家分享下我的理解:
镜像:大家应该都有过装系统的经验,装系统之前,我们肯定要从msdn(下载系统的一个官网)上下载我们需要的系统,例如windows_7_ultimate_x64.iso,这个我们都称它为win7镜像(就不分为纯净版和ghost版了),所以docker里面的镜像也就是我们即将用来装系统的镜像。
容器:容器有可能不好理解,但是我与操作系统关联上就好理解了,在前面我们已经拿到win7镜像了,但是这个镜像是放在我们的U盘里面,我们并不能用啊,我们得把他装到电脑上面啊,等我们把系统装好,我们就可以开机进入我们的win7操作系统了,这里的进入操作系统就等价与我们进入了我们的docker容器中,这个容器就是我们装好后的操作系统。
仓库:前面说的msdn官网其实就是一个系统仓库(系统的集合),docker的仓库指的就是镜像的集合,存放我们创建的镜像。
三个概念,到这里已经讲清楚了,我们开始使用docker为我们快速部署吧!
三、Docker的使用
环境:Centos7.0
Ⅰ.安装docker
我是直接采用阿里云提供的docker的安装方法,并且使用它的镜像加速(docker官网镜像下载太慢)
Ⅱ.配置镜像加速
①获取阿里云镜像加速地址:https://dev.aliyun.com/,进入注册,然后再点击该链接进入下页
再点击管理中心,进入如下页面:点击镜像加速,按照以下步骤进行添加配置,重启docker
Ⅲ.docker的常用命令:
① 获取需要的镜像:docker pull 镜像名
②查看已pull下来的镜像:docker images
②创建容器并启动:docker run -d[守护状态运行] 镜像名,返回容器的ID(先检查本地有没有该镜像,没有则先pull下来)
③查看容器的信息:docker ps
④进入容器内部:docker exec -it 容器ID sh
四、动手实践案例:利用docker部署我们的web项目
Ⅰ.首先将tomcat镜像pull下来,命令如下:
docker pull tomcat
Ⅱ.将我们项目的war包放到/opt 下面
Ⅲ.配置dockerfile文件
因为我们要部署自己的项目到容器中,所以我们通过编辑dockerfile文件的方式,修改镜像来达到此目的,具体如下:
指令解释:
from tomcat:指令from是选择你要用到的镜像,这里是一个装好了tomcat的一个镜像,就相当于一个预装office的操作系统镜像
MAINTAINER 884454075@qq.com 指定创建人的邮箱
COPY TestDocker.war /usr/local/tomcat/webapps:COPY指令,复制外部文件到镜像中,这里很好看懂,就是将我们将要部署的war拷贝到镜像中,之后我们启动的tomcat容器中就会部署有我们的项目了
Ⅳ.创建镜像
docker build -t tomcat:v1.0 .
解释:-t 指定镜像名 .表示dockerfile在当前目录下
Ⅴ.启动容器
docker run -p 8080:8080 tomcat:v1.0
解释:-p 外端口:内端口 镜像名
Ⅵ.测试
感谢大家能看到这里,文中讲的不正确的地方,欢迎在下方留言,我会及时修正。
欢迎大家关注我的公众号,会不定时更新技术干货。