最新消息:阿里云双12优惠,史上最低折扣。

Docker容器小白必看文

服务器租用 aliyun 261浏览

关于网站建设需要了解什么?网站价格如何辨别?

搭建一个网站已经是互联网时代下的主流趋势,许多企业抓住互联网的商机开始建设网站。市面上网站众多,各网站建设公司的质量参差不齐关于网站建设的费用也存在大量水分。

什么是Docker

Docker的英文翻译是“搬运工”的意思,他搬运的东西就是我们常说的集装箱Container,Container里面装的是任意类型的App,我们的开发人员可以通过Docker将App变成一种标准化的、可移植的、自管理的组件,我们可以在任何主流的操作系统中开发、调试和运行。

从概念上来看Docker和我们传统的虚拟机比较类似,只是更加轻量级,更加方便使,Docker和虚拟机最主要的区别有以下几点:

虚拟化技术依赖的是物理CPU和内存,是硬件级别的;而我们的Docker是构建在操作系统层面的,利用操作系统的容器化技术,所以Docker同样的可以运行在虚拟机上面。

我们知道虚拟机中的系统就是我们常说的操作系统镜像,比较复杂;而Docker比较轻量级,我们可以用Docker部署一个独立的Redis,就类似于在虚拟机当中安装一个Redis应用,但是我们用Docker部署的应用是完全隔离的。

我们都知道传统的虚拟化技术是通过快照来保存状态的;而Docker引入了类似于源码管理的机制,将容器的快照历史版本一一记录下来,切换成本非常之低。

传统虚拟化技术在构建系统的时候非常复杂;而Docker可以通过一个简单的Dockerfile文件来构建整个容器,更重要的是Dockerfile可以手动编写,这样应用程序开发人员可以通过发布Dockerfile来定义应用的环境和依赖,这样对于持续交付非常有利。

为啥要用容器?

应用容器是个啥样子呢,一个做好的应用容器长得就像一个装好了一组特定应用的虚拟机一样,比如我现在想用Redis,那我就找个装好了Redis的容器就可以了,然后运行起来,我就能直接使用了。

那为什么不能直接安装一个Redis呢?肯定是可行的,但是有的时候根据每个人电脑的不同,在安装的时候可能会报出各种各样的错误,万一你的机器中毒了,你的电脑挂了,你所有的服务都需要重新安装。但是有了Docker或者说有了容器就不一样了,你就相当于有了一个可以运行起来的虚拟机,只要你能运行容器,Redis的配置就省了。而且如果你想换个电脑,没问题,很简单,直接把容器”端过来”就可以使用容器里面的服务了。

Docker Engine

Docker Engine是一个C/S架构的应用程序,主要包含下面几个组件:

常驻后台进程Dockerd

一个用来和Dockerd交互的REST API Server

命令行CLI接口,通过和REST API进行交互(我们经常使用的docker命令)

 

Docker架构

Docker使用C/S(客户端/服务器)体系的架构,Docker客户端与Docker守护进程通信,Docker守护进程负责构建,运行和分发Docker容器。Docker客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过UNIX套接字或网络接口进行通信。

 

Docker Damon:dockerd,用来监听Docker API的请求和管理Docker对象,比如镜像、容器、网络和Volume。

Docker Client:docker,docker client是我们和Docker进行交互的最主要的方式方法,比如我们可以通过docker run命令来运行一个容器,然后我们的这个client会把命令发送给上面的Dockerd,让他来做真正事情。

Docker Registry:用来存储Docker镜像的仓库,Docker Hub是Docker官方提供的一个公共仓库,而且Docker默认也是从Docker Hub上查找镜像的,当然你也可以很方便的运行一个私有仓库,当我们使用docker pull或者docker run命令时,就会从我们配置的Docker镜像仓库中去拉取镜像,使用docker push命令时,会将我们构建的镜像推送到对应的镜像仓库中。

Images:镜像,镜像是一个只读模板,带有创建Docker容器的说明,一般来说的,镜像会基于另外的一些基础镜像并加上一些额外的自定义功能。比如,你可以构建一个基于Centos的镜像,然后在这个基础镜像上面安装一个Nginx服务器,这样就可以构成一个属于我们自己的镜像了。

Containers:容器,容器是一个镜像的可运行的实例,可以使用Docker REST API或者CLI来操作容器,容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

底层技术支持:Namespaces(做隔离)、CGroups(做资源限制)、UnionFS(镜像和容器的分层)the-underlying-technology Docker底层架构分析

转载请注明:小猪云服务器租用推荐 » Docker容器小白必看文