分享好友

×
取消 复制
11,Docker是什么?一篇文章解决你的大部分疑问
2020-05-25 15:34:17

1,没用容器化方式部署时,我们部署项目的一般流程

举个例子,假设我们要部署一个SSM项目,那么首先我们需要购买一台云服务器,然后安装JDK,tomcat,mysql等依赖的关键组件,然后再把项目打包上线部署,运行调试,验证程序运行结果。一切看起来都挺好的,但是问题来了,如果我们把这个项目做集群部署10台服务器,那么就意味着什么?上述的一系列安装依赖环境的动作,我们都需要重复做一遍。

另外一个问题,相信大家在工作中也会经常遇到,就是本地环境没问题,测试环境没问题,生产环境却出现问题,这样情况常常是因为依赖的环境存在一些差异而造成的,所以综上所述,这些都是体力活,我们需要一个更好的解决方案,它的名字叫Docker。

2,什么是Docker?

Docker正是解决了上述提到的问题,将服务(SSM项目)及运行环境加以封装,并确保将这个封装后的产物作为我们的交付物,这个交付物可以随时构建,装载,运行,不会再因为环境的差异带来了影响,而且这个交付物我们还只需要封装一次,避免了重复的依赖环境安装工作。

下面来一段比较正式的描述:

Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源产品。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 Docker本质是基于Linux的LXC技术,来实现相互的隔离,使用沙箱机制,更重要的是容器性能开销极低,因为是共享了宿主机的共同内核。

3,Docker的几个关键概念

Docker官网:

Empowering App Development for Developers | Dockerwww.docker.com图标

3.1,什么是Docker引擎

Docker引擎可以理解为一个运行在服务器上的后台服务,也称为Docker Daemon,我们只要启动该服务,就能通过Docker命令客户端发送Docker命令与Docker引擎进行通信,Docker客户端分为命令终端窗口和REST API客户端。

上面的图中,这只鲸鱼就是Docker引擎(Docker Engine)上面的一个个集装箱就是Docker容器(Docker Container) Docker引擎可以运行在基于Docker的云平台上。

3.2,什么是Docker镜像

Docker镜像可以认为是我们的光盘,光盘上刻录了数据,只要将光盘放入光驱中,就能读取光盘中的数据;同样,我们获取Docker镜像(光盘),并将其载入Docker引擎(光驱)中,就可以运行Docker镜像中的程序。

所以,我们将程序及其依赖环境打包到Docker镜像中,然后将Docker镜像重复使用。

3.3,什么是Docker容器

当我们运行Docker镜像,便会启动一个Docker容器,该容器将会运行镜像中封装的程序。 如果将Docker镜像理解为Java类的话,那Docker容器就相当于类的实例。 一个Docker镜像可以运行多个Docker容器,只要机器的性能足够好就行。

3.4,什么是Docker镜像中心

Docker镜像中心,就是类似于我们的maven仓库,统一管理我们的第三方依赖,那么Docker镜像中心顾名思义就是帮助我们来管理镜像的,可以是第三方共享的镜像,也可以是我们自己封装打包的镜像。

Docker官网提供了一个叫Docker Hub的镜像注册中心(Docker Registry) 用于存放公有和私有的Docker镜像仓库(Docker Repository)。 我们可以通过Docker Hub下载镜像,也可以将自己创建的镜像推送到Docker Hub上。 同时,Docker Hub也将自己的核心组件Docker Registry进行了开源,我们可以获得其镜像,在局域网内快速搭建一套私有的Docker镜像注册中心。

dockerHub地址:

Docker Hubhub.docker.com


3.5,Docker的架构体系

4,Docker vs Linux虚拟机

1. 虚拟机的工作流程


首先,在宿主机安装虚拟机软件,比如VMware,然后在虚拟机上,通过镜像文件安装操作系统。 此时,虚拟机软件需要模拟硬件和网络资源,会占用大量的系统开销。 一台普通的服务器,多能启动几十个虚拟机,而启动一个虚拟机一般需要几分钟。

2. Docker工作流程

首先,在宿主机安装Docker引擎,然后下载需要的Docker镜像,运行Docker镜像并启动相应的Docker容器。 Docker引擎可以完全利用宿主机的硬件和网络资源,占用系统的开销较小。 一台普通的服务器,可启动上千个Docker容器。

5,Docker相关网站推荐

docker官网:http://www.docker.com

docker中文网站:docker-cn.com/

Docker Hub官网: hub.docker.com/

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Docker 专区
创建时间:2020-05-08 10:53:18
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~