开发者社区> 游客sfvrpiloxozae> 正文

Docker——原理以及使用(一)(下)

简介: Docker——原理以及使用(一)(下)
+关注继续查看

下图是Docker容器的结构,从下到上分别是:


Infrastructure(基础设施),它可以是个人电脑、数据中心的服务器或者云主机;


Host Operating System(主机操作系统),所有主流的Linux发行版都可以运行Docker。对于MacOS和Windows,也有一些办法"运行"Docker;


Docker Daemon(Docker守护进程),Docker守护进程取代了Hypervisor,它是运行在操作系统之上的后台进程,负责管理Docker容器;


BINS/LIBS是各种依赖。对于Docker,应用的所有依赖都打包在Docker镜像中,Docker容器是基于Docker镜像创建的;


APP是应用。应用的源代码与它的依赖都打包在Docker镜像中,不同的应用需要不同的Docker镜像。不同的应用运行在不同的Docker容器中,它们是相互隔离的。


相同点:Docker容器技术和虚拟机技术都是虚拟化技术


不同点:


1.启动时间:Docker容器秒级启动,虚拟机分钟级启动;


2.占用空间:Docker容器镜像大小通常以M为单位,虚拟机以G为单位;


3.性能:Docker容器共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,性能基本接近物理机。虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,需要申请大量的资源,虚拟化开销大,因而降低性能,没有容器性能好;


4.安全性:Docker容器由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,Docker容器具有一定权限访问宿主机内核,存在一定安全隐患;


5.使用要求:虚拟机基于硬件的虚拟化,需要硬件CPU虚拟化技术支持。Docker容器共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。


Docker容器(一)——Docker的介绍与部署



7. Docker中Client 和 Server 以及 Registry

/117303716


image.png


Docker 使用客户端/服务器(Client/Server)架构。Docker客户端与 Docker守护进程对话,后者负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以 在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护进程使用 REST API、UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。


Docker 守护进程

Docker 守护进程 ( dockerd) 侦听 Docker API 请求并管理 Docker 对象,例如图像、容器、网络和卷。守护进程还可以与其他守护进程通信以管理 Docker 服务。


Docker 客户端

Docker 客户端 ( docker) 是许多 Docker 用户与 Docker 交互的主要方式。当您使用诸如 之类的命令时docker run,客户端会将这些命令发送到dockerd,从而执行它们。该docker命令使用 Docker API。Docker 客户端可以与多个守护进程通信。


Docker 注册表

Docker注册表存储 Docker 镜像。Docker Hub 是一个任何人都可以使用的公共注册中心,Docker 默认配置为在 Docker Hub 上查找镜像。您甚至可以运行自己的私有注册表。


当您使用docker pull或docker run命令时,所需的映像将从您配置的注册表中提取。当您使用该docker push命令时,您的映像会被推送到您配置的注册表中。


Docker 对象


Image镜像

Image镜像是只读的模板用来创建Container容器,通常情况下 一个镜像是基于另一个镜像,再加一些额外的自定义配置。例如:可以建一个基于ubuntu 的镜像,然后安装Apache 的服务器和你的应用,同时对一些细节进行配置让镜像到处运行。


Container容器

一个容器是镜像的可运行实例,可以使用Docker API或者CLI 创建,开始,停止,移除容器。可以将容器连接到一个或多个网络,为其附加存储,甚至可以根据其当前状态创建新映像。


默认情况下,容器与其他容器及其主机相对隔离。您可以控制容器的网络、存储或其他底层子系统与其他容器或主机之间的隔离程度。


容器由其映像以及在创建或启动它时提供给它的任何配置选项。 当容器被移除时,未存储在持久存储中的任何更改都会消失。


八、虚拟机的两套体系,Docker 与CentOs 与 Vagrant的区别

一种,使用 Vagrant + VirtualBox 快速构建 CentOS 下的 Docker 环境

二种,使用Vmware实现


九、Image镜像是如何实现的?

Docker镜像是通过DockerFile文件


十、将自定义镜像传到仓库

十一、Docker中的网络模型


image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19335 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
16910 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
11652 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24351 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
13179 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
32650 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14367 0
351
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载