文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Docker:容器技术与Docker介绍

2024-12-02 05:15

关注

1. 为什么"还"要学 Docker

在过去几年时间里,容器(Container)技术得到了快速的发展和普及。在这样的大背景下,我们作为开发人员,容器技术可以说是我们必备的基础技能之一。而 Docker 是容器技术中目前普及率最高的一个实现。

虽然现在 DevOps 领域最火的 Kubernetes(K8s) 已经弃用了 Dockershim(这是一个适配器组件,使得你可以把 Docker 用作 K8s 的容器运行时),但这并不代表 K8s 就不能运行 Docker 容器了。Dockershim 一定还会继续由社区或官方维护,或者 Docker 将来可能会支持 CRI 规范以使它可以不用借助适配器组件便可以运行在 K8s 中,所以目前来看大家完全不必担心。

Docker 目前在市场上的及率依然非常高,在实际环境中还是有很多更适合直接使用 Docker 的场景。

另外,我个人感觉,学习了 Docker 再去学 K8s 会轻松很多,很多概念不会那么抽象。

2. 什么是容器

顾名思义,容器(Container)是 IT 世界标准化的“集装箱”。就像运输业使用实体集装箱隔离不同的货物,以便通过船只和火车运输,软件开发技术也已使用这种容器化的方法。

最早的容器技术应该是一个叫 Linux Container 的工具,简称 LXC,它是一种内核轻量级的操作系统层的虚拟化技术。Linux Container 的实现主要包含 Namespace 和 Cgroup 两大基础技术,前者是命名空间,主要用于资源的隔离,后者负责资源管理和控制,比如 CPU 和内存的限制、进程组的挂起、恢复和优先级控制等。

随着虚拟化技术的发展,在 LXC 系统层容器技术的基础上,又诞生了应用层容器技术,比如 Docker。它是运行在操作系统之上的一个应用程序,在这个应用程序中,可以将需要部署的应用程序进行容器化,让各个应用程序运行在被隔离的容器中。

容器的主要优势特点是:标准化、轻量级、易移植、低成本。容器技术提供轻量级固定的基础设施,无需配置硬件和花费时间安装操作系统和软件来托管部署。它可将应用程序的代码与相关配置文件、库及执行应用程序所需的一切以非常标准化的方式组合打包在一起,这可让开发人员或运维人员顺畅地跨环境部署应用程序,从而解决应用程序换个环境就无法正确执行的问题。容器之间彼此隔离,有助于提升应用程序的安全性。

3. 什么是 Docker

前文说了,Docker 是容器技术的一种实现。Docker 是一个用于开发、交付和运行容器的容器化平台。桌面版 Docker 支持 Linux、Windows 和 macOS。对于服务器环境,Docker 支持 Linux 的多种分发版本和 Windows Server 2016 及更高版本,许多云服务商(如阿里云、Azure 等)都支持 Docker。

Docker 使用的是 C/S(客户端/服务器)架构。Docker 客户端与 Docker 守护进程(Daemon)对话,后者负责构建、运行和分发 Docker 容器。Docker 客户端和守护进程可以运行在同一个系统上,或者你可以将 Docker 客户端连接到一个远程的 Docker 守护进程,它们之间使用 REST API 通讯。另一个 Docker 客户端是 Docker Compose,它可以让你处理由一组容器组成的应用程序。

Docker 客户端是一个名为 docker 的命令行应用程序,它为我们提供了一个命令行接口 (CLI),用于与 Docker 服务器进行交互。docker 命令使用 REST API 接口将诸如 docker run 之类的指令发送到本地或远程服务器来管理容器。一个 Docker 客户端可以多个守护进程通信。

Docker 服务器中的守护程序(名为 dockerd)监听 Docker API 请求并管理 Docker 对象,如镜像、容器、网络、插件等。守护程序还可以与其他守护程序进行通信,以管理 Docker 服务。

Docker 镜像仓库是一个软件即服务(SaaS)Docker 容器 Registry(注册表)。Docker 镜像仓库是用于存储和分发创建的容器镜像。Docker Hub 是 Docker 用于镜像管理的默认公共仓库。

4. 结语

本文主要介绍了什么是容器和什么是 Docker,相信你对容器技术和 Docker 已经有了基本的了解。

来源:精致码农内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯