Docker 是什么
Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。诞生于2013年,最 初的发起者是dotCloud公司,后来改名为Docker Inc,专注于Docker 相关技术和产品的开发。Docker 项目目前已经加入了Linux基金会,全部开源代码均在https://github,com/docker上进行相关维护 官网地址为https://www.docker,com/,有相关文档可以参考。现在Docker与 OpenStack同为最受 欢迎的云计算开源项目, Docker 的Logo设计为蓝色鲸鱼,拖着许多集装箱。如图所示,鲸鱼可以看作宿主机,而集装箱可以理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。正如 Docker 的设计宗旨一 样:Build, Ship and Run Any App, Anywhere,即通过对应用组件的封装,发布、部署,运行等生命 周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应 用,也可以是一套服务,甚至是一个完整的操作系统。
Docker 和虚拟机的区别
作为一种轻量级的虚拟化方式,Docker与传统虚拟机相比具有显著的优势, Docker容器很快,启动和停止可以在秒级实现,比传统虚拟机要快很多;Docker核心解决的问 题是利用容器来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源, 所以 Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,从而在保证应用性能的同 时,减小系统开销,使得在一台主机上同时运行数千个Docker容器成为可能;Docker操作方便,还 可以通过 Dockerfile 配置文件支持灵活的自动化创建和部署。
下表对使用 Docker容器技术与传统 虚拟化技术的特性进行了比较。
Docker之所以拥有众多优势,与操作系统虚拟化自身的特点是分不开的。传统虚拟机需要有额 外的虚拟机管理程序和虚拟机操作系统层,而Docker容器是直接在操作系统层面之上实现的虚拟化
Docker 的使用场景
现在开发者需要能方便地创建运行在云平台上的应用,必须要脱离底层的硬件,同时还需要任 何时间地点可获取这些资源,这正是Docker所能提供的。Docker的容 器 技术可以在一台主机上轻松 为任何应用创建一个轻量级的,可移植的,自给自足的容器。通过这 种 容 器打包应用程序,意味着 简化了重新部署、调试这些琐碎的重复工作,极大地提高了工作效率。例如,服务器从腾讯云迁移 到阿里云,如果采用Docker容器技术,迁移只需要在新的服务器上启动需要的容器即可。
Docker 的核心概念及安装
1.镜像
Docker的镜像(lmage)是创建容器的基础,类似虚拟机的快照,可以理解为是一个面向Docker 容器引擎的只读模板。比如,一个镜像可以是一个完整的CentOS操作系统环境,称为一个CentOS 镜像,可以是一个安装了MySQL的应用程序,称为一个MySQL镜像,等等。
Docker提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经做好的应用镜像来直接使用。
2.容器
Docker 的容器(Container)是从镜像创建的运行实例。它可以被启动,停止和删除。所创建的每 一个容器都是相互隔离、互不可见,可以保证安全性的平台。可以把容器看作一个简易版的Linux环 境,Docker利用容器来运行和隔离应用。
3.仓库
Docker仓库(Repository)是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push 命令将它上传到公有仓库(Public)或者私有仓库(Private),这样一来当下次要在另外一台机器上使 用这个镜像时,只需要从仓库上拉取下来就可以了。
仓库注册服务器(Registry)是存放仓库的地方,其中包含了多个仓库,每个仓库集中存放某一 类镜像,并且使用不同的标签(Tag)来区分它们,目前最大的公共仓库是Docker Hub,存放了数量 庞大的镜像供用户下载使用。
4.安装 Docker
Docker支持在主流的操作系统平台上进行使用,包括 Windows系统、Llinux系统及MacOS系统 等。目前最新的RedHat RHEL.CentOS 及 Ubuntu系统官方软件源中都已经默认自带了 Docker包,可 直接安装使用,也可以用 Docker自己的YUM源进行配置。
CentOS 系统下安装Docker可以有两种方式:一种是使用 cul获得Docker的安装脚本进行安装, 另一种是使用YUM仓库来安装Docker。需要注意的是,目前Docker 只能支持64位系统。
(1)安装 Docker
[root@lgc ~]# wget https://download.docker.com/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo //定义yum仓库 Docker官方源
[root@lgc ~]# yum -y install docker-ce //用自带的yum源安装
(2)安装完成启动 Docker 并设置开机自动启动
[root@lgc ~]# systemctl start docker.service
[root@lgc ~]# systemctl enable docker.service
安装好的Docker有两个程序:Docker服务端和 Docker客户端。其中Docker服务端是一个服务进 程,管理着所有的容器。Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker 的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。
(3)通过检查Docker版本可以查看Docker服务
[root@lgc ~]# docker version