像和容器

Docker中有几个重要的概念:

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。

一切应用最终都是代码组成,都是硬盘中的一个个的字节形成的文件。只有运行时,才会加载到内存,形成进程。

镜像,就是把一个应用在硬盘上的文件、及其运行环境、部分系统函数库文件一起打包形成的文件包。这个文件包是只读的。

容器呢,就是将这些文件中编写的程序、函数加载到内存中允许,形成进程,只不过要隔离起来。因此一个镜像可以启动多次,形成多个容器进程。

例如你下载了一个QQ,如果我们将QQ在磁盘上的运行文件及其运行的操作系统依赖打包,形成QQ镜像。然后你可以启动多次,双开、甚至三开QQ,跟多个妹子聊天。

DockerHub

开源应用程序非常多,打包这些应用往往是重复的劳动。为了避免这些重复劳动,人们就会将自己打包的应用镜像,例如Redis、MySQL镜像放到网络上,共享使用,就像GitHub的代码共享一样。

  • DockerHub:DockerHub是一个官方的Docker镜像的托管平台。这样的平台称为Docker Registry。

  • 国内也有类似于DockerHub 的公开服务,比如 网易云镜像服务、阿里云镜像库等。

我们一方面可以将自己的镜像共享到DockerHub,另一方面也可以从DockerHub拉取镜像:

Docker架构

我们要使用Docker来操作镜像、容器,就必须要安装Docker。

Docker是一个CS架构的程序,由两部分组成:

  • 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等

  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。

如图:

小结

镜像:

  • 将应用程序及其依赖、环境、配置打包在一起

容器:

  • 镜像运行起来就是容器,一个镜像可以运行多个容器

Docker结构:

  • 服务端:接收命令或远程请求,操作镜像或容器

  • 客户端:发送命令或者请求到Docker服务端

DockerHub:

  • 一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry

初识Docker-Docker架构相关推荐

  1. 【原创视频】Docker总体架构设计及各模块原理剖析

    Docker总体架构设计及各模块原理剖析

  2. Docker:架构分解

    Docker内部构建 要理解Docker内部构建,需要理解以下三种部件: Docker镜像(Image) Docker容器(Container) Docker仓库(repository) 基本上理解了 ...

  3. 【云原生】第二篇--容器管理工具 Docker生态架构及部署

    容器管理工具 Docker生态架构及部署 一.Docker生态架构 1.1 Docker Containers Are Everywhere 1.2 生态架构 1.2.1 Docker Host 1. ...

  4. Docker的架构与自制镜像的发布

    一. Docker                            Docker与自动化测试 docker 是基于 Go 语言的开源的应用容器引擎,并遵从Apache2.0协议,docker 让 ...

  5. docker containerd 架构和源码简单分析

    docker containerd 架构和源码简单分析 本文结合docker1.12简单说明一下docker 的现有框架,简单分析docker containerd的架构和源码. docker发展到现 ...

  6. 什么是docker和docker的架构

    什么是docker和docker的架构 一.什么是docker https://www.runoob.com/docker/docker-container-usage.html Docker 是一个 ...

  7. Docker网络架构三剑客CNM,Libnetwork和Driver

    Docker网络架构主要由三部分组成:CNM,Libnetwork和Driver. 1.CNM CNM(Container Network Model)是一种网络模型,用于定义容器的网络架构和实现容器 ...

  8. Docker的架构设计

    前面我们研究了Docker容器的本质是一个特殊的进程,那么这个特殊进程是如何创建.如何终止的那?也就是说是谁来管理这个容器进程的生命周期的那? 在mac操作系统中我们可以通过活动监视器来观察操作系统里 ...

  9. 第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)

    Docker学习 Docker概述 官方地址:Empowering App Development for Developers | Docker Docker的思想来自于集装箱! 隔离:Docker ...

  10. docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境

    [Docker] Docker 快速搭建本地MySQL开发环境 关于 Docker 的安装使用本文不再赘述,有兴趣的可以通过官网或是浏览我的专栏文章了解.今天着重给大家介绍下如何利用Docker快速搭 ...

最新文章

  1. 模型类序列化器ModelSerializer
  2. hashmap 存的是对象的引用地址_Java互联网架构-面试虐我千百遍HashMap源码真讨厌...
  3. c语言ox32左移一位的值,程序设计基础 (C)(32+32) 实验指导书.docx
  4. lucene简单实例
  5. vue路由异步组件案例
  6. - 动规讲解基础讲解五——最长公共子序列问题
  7. CentOS下Redisserver安装配置
  8. 80psi等于多少kpa_关于胎压的换算psi、bar,kpa
  9. InnoDB如何实现事务特性
  10. Merlin——零知识证明(1)理论篇
  11. 苹果系统中国日历服务器,ios日历中国节日不见了(2021年苹果日历订阅地址)...
  12. 数据结构与算法之算法篇
  13. 《史蒂夫乔布斯传》部分读书摘录
  14. java 实现qq截图功能吗_Java实现了任意位置截屏(仿QQ截图)
  15. 那些年,被 3.15 点名的科技公司,你们还好吗?
  16. 昨天看《天使爱美丽》
  17. mysql LAST_DAY() 函数
  18. 多类差异信息柔性融合概念与内涵
  19. Lync客户端证书安装
  20. java画太极加图片_通过Java 画一个太极图

热门文章

  1. Delphi字符串处理函数
  2. prefuse学习(二)显示一张图
  3. 【UOJ 276】无向图最小环
  4. Redis(2)---数据持久化
  5. 51Nod 1050 循环数组最大子段和
  6. Linux 下面安装nodejs
  7. 基于读取车载RFID标签自动开关车库门c#算法实现
  8. datax源码阅读一:python文件
  9. WebRTC通话质量调优:三个弱网模拟测试工具的使用与对比
  10. 这可能是由于 CredSSP 加密 Oracle 修正。