一、Docker容器基本概念

一、什么是Docker

Docker是基于Go语言实现的开源项目,用于开发、交付和运行应用程序的开放平台,是世界领先的软件容器平台。

二、容器

容器是一个标准化的软件单元,允许开发人员将他们的应用程序与其环境隔离开来,这一过程被称为容器化。容器技术的出现解决了传统部署方法中存在的一系列问题,使得软件开发和部署更加一致、高效。

三、容器与传统虚拟化的区别

容器和虚拟机具有类似的资源隔离和分配优势,但功能不同,因为容器虚拟化操作系统而不是硬件。容器更便携、更高效。

虚拟机 (VM) 是物理硬件的抽象,可将一台服务器转换为多台服务器。虚拟机监控程序允许多个虚拟机在一台计算机上运行。每个 VM 都包含操作系统、应用程序、必要的二进制文件和库的完整副本,占用数十 GB。

容器有着比VM更少的抽象层,是应用层的抽象,它将代码和依赖项打包在一起。多个容器可以在同一台计算机上运行,并与其他容器共享操作系统内核,每个容器在用户空间中作为独立进程运行。容器占用的空间比 VM 少(容器映像通常为数十 MB),可以处理更多的应用程序,并且需要更少的 VM 和操作系统。

当新建一个容器时,不需要和 VM一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个 VM时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。容器由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个容器只需要几秒钟。

容器和 VM 一起使用,在部署和管理应用方面提供了极大的灵活性。

四、为什么要用Docker

快速部署迁移

传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间

弹性伸缩快速扩展

随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级

环境一致性

应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。

高资源利用率

Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。

持续交付和部署

使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。

快速启动

可以做到秒级、甚至毫秒级的启动时间

五、Docker架构

Docker使用客户端-服务器体系结构。Docker客户端与Docker守护程序,负责构建、运行和分发Docker容器。Docker客户端和守护程序可以在同一系统上运行,也可以将 Docker 客户端连接到远程 Docker守护进程。Docker客户端和守护程序使用REST API通过UNIX套接字或网络接口进行通信。另一个Docker客户端是Docker Compose, 可以使用由一组容器组成的应用程序。

Docker daemon

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

Docker client

Docker 客户端 (docker) 是许多 Docker 用户交互的主要方式。当使用docker run等命令时,客户端会发送命令给dockerd去执行它们。docker命令使用 Docker API。Docker client可以与多个Docker daemon通信。

Docker Desktop

Docker Desktop 是一款易于安装的应用程序,适用于 Mac、Windows 或 Linux 环境,使您能够构建和共享容器化应用程序和微服务。Docker Desktop 包括 Docker daemon (dockerd)、Docker client (docker)、Docker Compose、Docker Content Trust、Kubernetes 和凭据帮助程序。

Docker registries

Docker 镜像仓库用来存储 Docker 镜像。Docker Hub 是一个公共的镜像仓库,Docker 在默认镜像仓库为 Docker Hub。使用 docker pull 或 docker run 命令时,Docker 会从配置的镜像仓库中提取所需的镜像。使用docker push命令时,Docker 会推送镜像到配置的镜像仓库。

Docker object

镜像、容器、网络、卷、插件等。

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小孙的运维笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值