在以前的开发时代,开发人员把自己开发好的war交付给运维人员,运维人员为了把war部署到服务器上且保证能运行,就必须由运维人员在服务器上搭建好运行环境!
可这样带来的问题是,如果开发环境与部署环境不一致(比如版本),则会导致无法在服务器环境上运行的问题。也就会经常听到开发人员说:“在我的机器上可正常工作的呀”之类的抱怨!
而为了解决这个问题,让这些程序在部署环境可以顺利执行,开发团队除了交付应用代码以外,也得准备完整的部署文件,让运维团队得以部署应用程序。即便如此,服务器上仍然常常发生部署失败的状况。
为了维护宇宙和平,为了开发人员和运维人员的大团结,docker应运而生!
docker的作用,简单来说,就是将你的业务代码和部署环境打包在一起,打包在一起的这个东东叫做“镜像”,然后你把“镜像”直接交给运维人员即可,运维人员拿到了你给他的“镜像”,就等价于同时拿到了业务代码、部署环境,运维人员再也不用自己亲自下载任何环境包了(甚至运维人员都可以不要了,DevOps应运而生)。
也就是说,docker能保证开发环境与部署环境的绝对一致!在使用docker的情况下,只要开发人员能保证在开发阶段应用能正常运行,那么把项目交付给运维人员后,在部署环境下也一定能运行!
另外,在使用docker的提前下,横向扩展(集群)也是很方便的。
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(摘自百度百科)
想要搞懂Docker,其实看它的两句口号就行。第一句,是“Build, Ship and Run”。
也就是,“搭建、发送、运行”,三板斧。举个例子:我来到一片空地,想建个房子,于是我搬石头、砍木头、画图纸,一顿操作,终于把这个房子盖好了。
结果,我住了一段时间,想搬到另一片空地去。这时候,按以往的办法,我只能再次搬石头、砍木头、画图纸、盖房子。但是,跑来一个老巫婆,教会我一种魔法。这种魔法,可以把我盖好的房子复制一份,做成“镜像”,放在我的背包里。
我拿着这个包,到了另一片空地,就用这个“镜像”,复制一套房子,摆在那边,拎包入住。
所以,Docker的第二句口号就是:“Build once,Run anywhere”
务必先配置阿里的yum源,这样安装docker的速度就不会太慢。
卸载旧版本的docker,旧版本的docker程序被称作docker或者docker-engine,如果之前在系统中安装过,那么就卸载掉,当然连同依赖一起卸载了!
现在新版本的docker社区版叫做:docker-ce。安装需要的packages
yum install -y yum-utils device-mapper-persistent-data lw2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
至此,在CentOS 7下,docker已经安装好了,可以查看下docker的版本
sudo yum install -y yum-utils \
device-mapper-persistent-data \
sudo yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
至此,在CentOS 8下,docker已经安装好了,可以查看下docker的版本
上图展示出了docker三要素:仓库、镜像、容器。看起来和Maven很相似,我们可以为Maven配置镜像仓库来提高依赖的下载速度,同样,我们也可以为docker配置镜像仓库,以提高镜像的下载速度。
Docker Hub服务是部署在国外的,且一个镜像大小,一般都在上百兆,这样的话,我们从Docker Hub服务上下载镜像的速度就会很慢,为了提高下载镜像的速度,我们需要配置国内的镜像加速器。
国内的镜像加速器不止一个,比如有:科大、网易、阿里云、七牛云。在本教程中,我们使用阿里云的镜像加速器。
首先注册一个阿里云账户,并登录,剩下的步骤,在图中已经很明确了
https://www.aliyun.com/product/acr?spm=5176.12825654.h2v3icoap.26.1dbb2c4akHLmKD&aly_as=6Y2Nt_Ty
该步骤是可选的,但还是建议配置一下,不然从dockerhub上拉取镜像的速度是无法容忍的!
docker pull 镜像名 拉取远程仓库的镜像到本地仓库中
docker run 镜像名 根据指定的镜像生成一个镜像的实例并运行
能看到以上的输出内容,就说明hello-world运行成功!
注意,如果docker的hello-world例子是由java写的,那么该hello-world镜像中,则会包含:应用程序、JVM、精简版的操作系统。如下图所示:
1. 镜像,就是一个只读的模板(包含着软件,以及运行软件所需的环境)
2. 容器,是用镜像创建的运行实例 (每一个容器本质上都是一个操作系统)
其中仓库分为公开仓库和私有仓库两种形式,最大的公开仓库是Docker Hub,其中存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等。
标签:起步,安装,ce,yum,镜像,docker,快速,Docker From: https://www.cnblogs.com/qiutian888/p/18278736