loader image

docker架构与容器化

docker工作时的样子


我们想要使用docker完成应用的构建、分享或者运行程序,首先需要准备一台机器在上面安装docker环境,也称其为docker主机(docker host),只要安装了docker他就会运行一个进程docker daemon一直在运行时刻准备服务;紧接着我们需要docker提供的客户端(Client),使用命令行程序(docker-cli)来操作docker的后台进程,给他发送一些命令,让其执行;最后还需要一个类似于应用市场的东西,这个应用市场里面包括了我们常见使用的一些应用,如:MySQL、Ubuntu、Nginx以及Redis等等,我们把这些所谓的应用市场里的程序称之为镜像。

docker的命令作用简介

pull


我们现在docker主机上部署一个环境(启动一个应用)就可以使用pull命令将image(镜像)下载到本地(docker主机),也就类似于我们去应用市场下载软件一样

run


当我们想运行pull下来的镜像,就可以使用run命令来运行。docker-cli会给docker主机发送run命令,run命令就会在本地找到你指定的这个镜像文件,让他运行起来。用镜像运行起来的一个程序就是一个容器。举个例子QQ并且登录,就会有一个QQ进程,这个进程就是一个容器,你再登录另外一个QQ又是另一个容器,这两个QQ之间是互相隔离的,不可能你这个QQ的消息会被另一个QQ接收到(这里只是举个例子更好理解,可能并不严谨)

image.png

如果你run一个镜像,这个镜像还没有在本地,那么他就会自动去下载这个镜像并且run起来

build


如果我们想自己做一个镜像,就可以使用build命令让docker daemon帮你制作镜像

image.png

push


如果你想将你制作好的镜像发送到应用市场共别人下载,就可以使用push命令

image.png

综上,镜像可以理解为就是软件包,容器就是用镜像(软件包)运行起来的一个应用

理解容器

传统部署


在传统的部署中,没有对应用之间进行隔离,如果其中一个应用崩溃了可能就会影响到别的应用,这是不安全的

image.png

虚拟化部署


于是为了隔离应用,人们就引入了虚拟化部署,也就是在一个宿主机上虚拟化出多个虚拟机,在虚拟机上分别运行不同的应用这样某一个应用崩溃了影响的也只是运行这个应用的虚拟机,不会影响到别的虚拟机,就实现了隔离

image.png

容器部署


但是有一个问题,每一个虚拟机中又要单独运行一个操作系统,这样随着虚拟机的数量增多对宿主机产生的压力就会很大,明明只需要运行一个或几个应用但是有需要再运行多个操作系统,这无疑是对资源的一大浪费。于是人们就衍生出了容器化部署,容器化部署指的是只拥有宿主机这个操作系统,在宿主机的操作系统之上并不会像虚拟机一样运行操作系统,而是会有一个环境,该环境可以支撑该应用运行,也就是不会有冗余的一些,比如我只需要A、B,你就只给我A、B不会给我A、B、C、D...等多余的东西,这样就大大提高了资源的利用效率。容器化技术即拥有应用之间的隔离,又不会拥有完整的操作系统。

  1. 容器类似轻量级的VM
  2. 容器共享操作系统内核
  3. 容器拥有自己的文件系统、CPU、内存、进程空间等
  4. 容器之间互相隔离

image.png

容器化技术的有点


  1. 轻量
  2. 快速
  3. 隔离
  4. 跨平台
  5. 高密度
    • 因为运行应用所需要的资源少,所以在单位资源空间内,能部署的容器数量比虚拟机数量要多的多

134人评论了“docker架构与容器化”

  1. 38 Measurements at baseline and 6 months may not have adequately captured acute or transient changes in circumferences and or symptoms that may result from exercise how to take priligy American journal of pseudotumor cerebri secondary to help keep even if you may double bond

  2. Its like you read my mind You appear to know a lot about this like you wrote the book in it or something I think that you could do with some pics to drive the message home a little bit but instead of that this is fantastic blog An excellent read I will certainly be back

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top