1、基本概念
Docker 包括三个基本概念:
-
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
-
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
-
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
2、Docker能做什么?
一款产品:开发 -- 上线 两套环境
开发 -- 运维
问题:环境配置十分麻烦,每个机器都要部署环境,项目能不能带上环境打包部署?
Docker提出了解决方案,使用镜像
隔离:Docker的核心思想,即打包装箱,每个箱子都是互相隔离的,Docker通过隔离机制,可以将服务器利用到极致!容器化技术不是一个完整的操作系统
Docker和虚拟机技术的不同
-
传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在系统上安装和运行软件
-
容器内的应用直接运行在宿主机的内容,容器是没有内核的,没有虚拟我们的硬件,所以就轻便了
-
每个容器之间是相互隔离的,每个容器都有一个属于自己的文件系统,互不影响
DevOps(开发、运维)
-
更快速的交付和部署
-
Docker:一键运行,打包镜像发布测试
-
-
更便捷的升级和扩容
-
部署应用就和搭积木一样
-
Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,服务器性能被压榨到极致。
3、历史
2010年,几个搞IT的年轻人在美国成立了一家公司 dotCloud
主要做一些pass的云计算服务,LXC有关的容器技术,容器技术被命名为Docker
2013年,Docker开源
2014年4月9日,Docker1.0发布
虚拟机属于虚拟化技术,Docker容器技术,也是一种虚拟化技术,Docker基于Go语言开发的
Docker的文档:Docker Documentation | Docker Documentation
Docker Hub镜像仓库地址:Docker Hub