一:docker为什么会出现
开发与运维人员经常出现得一个问题就是:开发人员在本地代码能正常运行,但是交付给运维人员部署时却不能整成运行。代码是一样的,为什么不能运行那,那就是运行环境的问题了,比如开发人员开发的程序必须运行在tomcat8中,但是运维人员那边用的是tomct7,这样肯能程序运行就会出问题。docker的出现就是解决此问题的,即软件带环境安装;还有一个问题,就是现在我们都是集群,如一个程序部署到9台机器上,该程序用到了redis,ActiveMQ等,那么运维人云必须在这9台机器上分别安装redis,ActiveMQ,很费时间,而docker也解决了此问题,总结上述,docker解决了2个问题:
- 跨平台无缝轨链接
- 集群部署
二:docker理念
将软件及软件运行的环境一同打包成一个镜像(自底向上:操作系统发行版,运行依赖包,运行环境,配置环境,运行文件。(不包括内核)),在任何平台上都能运行。即:一次封装,到处运行。
- 更快速的应用交付和部署
- 更便捷的升级和扩缩容
- 更简单的系统运维
- 更高效的计算资源利用
三:概念
是解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术
四:组成
docker有三大组成要素:仓库,镜像,容器
1.仓库:
是集中存放镜像文件的场所。区别仓库注册服务器,仓库注册服务器上可存放多个仓库,每个仓库可存放多个镜像,每个镜像可有多个标签。仓库分为公开仓库和私有仓库,最大的公开仓库为Docker Hub(https://hub.docker.com/),国内的有阿里云,网易云等。
2.镜像:
就是一个只读模板,镜像用来创建容器的,一个镜像可创建多个容器。
3.容器:
是用镜像创建的实例,可利用容器独立运行一个或一组应用。它可以被启动,开始,停止,删除。每个容器是相互隔离的,保证安全的平台。可把容器看作是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。(镜像好比类,容器好比类创建的实例)
总结
docker本生是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境。这个运行环境好似image镜像文件,然后放到仓库中,等我们需要时,在仓库上pull下来(一般我们需要的镜像阿里云上都有了,所以需要时在阿里云上把镜像拉下来即可),通过这个镜像创建实例形成Docker容器
五:安装
1. 检测自己的linux系统的内核:# uname -r
,或查看系统版本:# cat /etc/redhat-release
2. 安装
官方建议安装在centos7及以上,否则docker的一些功能无法使用
1. Centos7以下版本(如centos6.8)
2.Centos7及以上版本
@1. 更新yum:# yum update
(不要随便yum update 后果有时会导致系统启动不了,因为它会更新你的内核,如果更新失败,最好yum clean all)
@2. 安装docker:# yum -y install docker
(Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,所以可以直接安装)
@3. 启动docker服务:# systemctl start docker
@4. 测试是否安装成功: docker run hello-world(此镜像是docker自带的一个镜像,就是为了人们测试docker是否安装成功,所以运行此镜像,如果本地没有,必须从仓库下载
@5. 配置镜像加速器:镜像默认是从Docker Hub上,而国外网站通常很慢或根本访问不过去,随意我们要改一下仓库地址):修改仓库地址# vim /etc/docker/daemon.json
(该文件一开始只有{})
如果没有阿里云账号,可以配置如下:
{"registry-mirrors": ["https://registry.docker-cn.com"] }
如果有阿里云账号,可配置专属自己的镜像加速器,将地址改一下即可:
运行结果为:
docker路上的小白正在努力爬行中(我要一步一步往前爬~~~ 总有一天我要属于我的天~~~) ?