Docker简介
Docker是什么
Docker 是一个用于开发、发布和运行应用程序的开放平台。 Docker 能够将应用程序与基础架构分离,可以像管理应用程序一样管理基础设施。Docker 提供了在容器的隔离环境中打包和运行应用程序的能力。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。
Docker架构
Docker 使用客户端-服务器架构。 Docker 客户端与 Docker 守护进程对话,后者负责构建、运行和分发 Docker 容器的繁重工作。 Docker 客户端和守护程序使用 REST API,通过 UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许使用由一组容器组成的应用程序。
- Docker daemon: Docker 守护进程 (dockerd) 监听 Docker API 请求并管理 Docker 对象,例如镜像、容器、网络和卷。守护进程还可以与其他守护进程通信以管理 Docker 服务
- Docker Client: Docker 客户端(docker)是用户与 Docker 交互的主要方式。当你使用 docker run 等命令时,客户端会将这些命令发送给 dockerd,dockerd 会执行这些命令。 docker 命令使用 Docker API。 Docker 客户端可以与多个守护进程通信.
- Docker Desktop: Docker Desktop 包括 Docker 守护程序 (dockerd)、Docker 客户端 (docker)、Docker Compose、Docker Content Trust、Kubernetes 和 Credential Helper
- Docker registries: 用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库
- Images: 软件打包好的镜像;放在docker仓库中
- Containers: 容器是一个镜像的可运行实例。你可以使用Docker API或CLI来创建、启动、停止、移动或删除一个容器。你可以将一个容器连接到一个或多个网络上,为其附加存储,甚至可以根据其当前状态创建一个新的镜像
Docker底层技术
Docker是用Go编程语言编写的,并利用了Linux内核的一些特性来提供其功能。Docker使用一种叫做命名空间的技术来提供称为容器的隔离工作空间。当你运行一个容器时,Docker为该容器创建一组命名空间。这些命名空间提供了一个隔离层。容器的每个方面都在一个单独的命名空间中运行,其访问仅限于该命名空间。
Docker与虚拟机比较
特性 | 容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
性能 | 接近原生 | 较弱 |
内存代价 | 很小 | 较多 |
硬盘使用空间 | 一般为MB | 一般为GB |
隔离性 | 安全隔离 | 完全隔离 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战