Docker是什么?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。-----百度百科
Docker为什么会出现?
开发----运维之间矛盾重重,一款产品:开发–上线 两套环境!应用环境,应用配置!环境配置十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…)!费时费力、发布一个项目(jar+(Redis、MySQL、jdk、ES)),那我们的项目能不能都带上环境安装打包呢?Docker就是用来解决这个问题的。
- 过去:开发人员开发,运维人员拿jar包部署。
- 现在:开发打包部署上线,一气呵成!
Docker的特点
在容器技术出来之前,我们都是使用虚拟机技术!
虚拟机是属于虚拟化技术,Docker容器技术,也是一种虚拟化技术!
Docker十分的轻巧,docker:隔离,镜像(核心环境4m + jdk + mysql)十分的小巧,运行镜像就可以了!小巧!
Docker是基于Go语言开发的开源项目
比较Docker和虚拟机技术的不同
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机上,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
- 每个容器间互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。
Docker能用来做什么
- 虚拟机技术的缺点:
- 冗余步骤多
- 资源占用十分多
- 启动很慢!
- 容器化技术特点:
容器化技术不是模拟的完整操作系统
DevOps(开发、运维)
应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行
更便捷的升级和扩缩容
使用了Docker之后,我们部署应用就和搭积木一样!
项目打包为一个镜像,扩展 服务器A!服务器B
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的。
更高效的计算资源利用
Docker是内核级别的虚拟化。
Docker能用来做什么
-
镜像(Image):
docker镜像就好比是一个模板,可以利用docker镜像来创建容器服务,通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。 -
容器(container)
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
只有启动、停止、删除这些基本命令!
目前可以把这个容器理解为就是一个简易的linux系统 -
仓库(repository)
仓库用来存放镜像,仓库分为共有仓库和私有仓库!
从Docker Hub上可以下载镜像,但是是国外的,下载比较慢,我们要下载可以去阿里云镜像,都有容器服务器,需要我们配置一下镜像加速。