Docker 介绍 及 支持的操作系统

这篇具有很好参考价值的文章主要介绍了Docker 介绍 及 支持的操作系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker组成:

Docker主机(Host): 一个物理机或虚拟机, 用于运行Docker服务进程和容器, 也成为宿主机, node节点。
Docker服务器端(Server): Docker守护进程, 运行Docker容器。
Docker客户端(Client): 客户端使用docker命令或其他工具调用docker API。
Docker仓库(Registry):保存镜像的仓库, 官方仓库:hub.docker.com, 可以搭建私有仓库harbor。
Docker镜像(Images):镜像可以理解为创建实例使用的模本, 相当于RPM或者DEB包。
Docker容器(Container):容器是从镜像生成对外提供服务的一个或一组服务, 相当于RPM包中的程序运行起来。

Docker 介绍 及 支持的操作系统,docker 

       Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

        Docker是一个基于轻量级虚拟化技术的容器,整个项目基于Go语言开发,并采用了Apache 2.0协议。Docker可以将我们的应用程序打包封装到一个容器中,该容器包含了应用程序的代码、运行环境、依赖库、配置文件等必需的资源,通过容器就可以实现方便快速并且与平台解耦的自动化部署方式,无论你部署时的环境如何,容器中的应用程序都会运行在同一种环境下。

        那么镜像又是什么呢?镜像是Docker中的一个重要概念:

        Image(镜像):它类似于虚拟机中使用到的镜像,由于任何应用程序都需要有它自己的运行环境,Image就是用来提供所需运行环境的一个模板。

        Container(容器):Container是Docker提供的一个抽象层,它就像一个轻量级的沙盒,其中包含了一个极简的Linux系统环境与运行在其中的应用程序。Container是Image的运行实例(Image本身是只读的,Container启动时,Docker会在Image的上层创建一个可写层,任何在Container中的修改都不会影响到Image,如果想要在Image保存Container中的修改,Docker采用了基于Container生成新的Image层的策略),Docker引擎利用Container来操作并隔离每个应用(也就是说,每个容器中的应用都是互相独立的)。

        其实从Docker与Container的英文单词原意中就可以体会出Docker的思想。Container可以释义为集装箱,集装箱是一个可以便于机械设备装卸的封装货物的通用标准规格,它的发明简化了物流运输的机械化过程,使其建立起了一套标准化的物流运输体系。而Docker的意思为码头工人,可以认为,Docker就像是在码头上辛勤工作的工人,把应用打包成一个个具有某种标准化规格的"集装箱"(其实这里指出的集装箱对应的是Image,在Docker中Container更像是一个运行中的沙盒),当货物运输到目的地后,码头工人们(Docker)就可以把集装箱拆开取出其中的货物(基于Image来创建Container并运行)。这种标准化与隔离性可以很方便地组合使用多个Image来构建你的应用环境(Docker也提倡每个Image都遵循单一职责原则,也就是只做好一件事),或者与其他人共享你的Image。

Docker 可以运行在多种类型的操作系统上,包括但不限于以下系统:

1、Linux
Docker 基于 Linux 内核的虚拟化技术,因此 Linux 是其主要的支持系统。
Docker 官方提供了对大多数主流 Linux 发行版的支持,包括 Ubuntu、Debian、CentOS、Fedora 等。

2、Windows
从 Windows 10 版本 1607 开始,Docker 可以运行在 Windows 10、Windows 11 的桌面版上。

3、macOS
Docker 可以运行在 macOS 10.15 及更高版本上,通过 Docker Desktop for Mac 提供支持。

4、ARM架构的操作系统
Docker 也支持在 ARM 架构的设备上运行,例如树莓派等。

Docker官方文档明确写了支持那些操作系统和硬件架构:

Docker 介绍 及 支持的操作系统,docker

在这些系统上的具体安装方式可以参考:

Install Docker Engine | Docker Docs

Docker不能直接运行在Windows或MacOS上。虽然在这类系统上也能安装Docker Desktop,但实际Docker是运行在虚拟机里。比如Windows的Docker就是泡在WSL2或Hyper-V虚拟机上,具体可以参考:

Install Docker Desktop on Windows | Docker Docs 

        早期的容器基于Linux的LXC工作. 可以提供轻量级的虚拟化, 以便隔离进程和资源, 而不需要提供指令解释机制以及全虚拟化的其他复杂性. 容器有效地将由单个操作系统管理的资源划分到孤立的组中, 以便更好地在孤立的组之间平衡有冲突的资源使用需求。

        Linux Container提供了在单一可控主机节点上支持多个相互隔离的Server Container同时执行的机制. Linux Container有点像chroot, 提供了一个拥有自己进程和网络空间的虚拟环境, 但又有区别去虚拟机, 因为lxc是一种操作系统层次上的资源的虚拟化。

        如果容器已经普遍基于Docker管理, 而Docker是一个可以将应用程序及其依赖打包到几乎可以在任何服务器上运行的容器的工具。

        Docker是基于Linux内核实现的, Docker最早采用了LXC技术, LXC是Linux原生支持的容器技术, 可以提供轻量级的虚拟化. Docker基于LXC发展, 提供了LXC的高级封装, 标准的配置方法, 在LXC的基础上, Docker提供了一系列更强大的功能. 而虚拟化技术, 比如KVM, 是基于模块实现, 后来Docker改为自己研发并开源的runc技术运行容器

        Docker相比虚拟机的交付速度更快, 资源消耗更低, Docker采用客户端/服务器端架构, 使用远程API来管理和创建容器, 其可以轻松的创建一个轻量级的, 可移植的, 自给自足的容器. Docker的三大理念就是build, ship, run. Docker通过namespace和cgroup来提供容器的资源隔离与安全保障等, 所以Docker容器在运行时, 不需要类似虚拟机的额外资源开销, 因此可以大幅度提供资源利用率

容器和虚拟机技术比较

        传统虚拟机是虚拟出一个主机硬件, 并且运行一个完整的操作系统, 然后在这个系统上安装和运行软件。

        容器内的应用直接运行在宿主机的内核之上, 容器并没有自己的内核, 也不需要虚拟硬件, 相当轻量化。

        每个容器间是相互隔离, 每个容器内都要一个属于自己的独立文件系统, 独立的进程空间, 网络空间, 用户空间等, 所以在同一个宿主机上的多个容器之间彼此不会相互影响容器和虚拟机表现比较。

        资源利用率更高:开销更小, 不需要启动单独的虚拟机OS内核占用硬件资源, 可以将服务器性能压榨至极致. 虚拟机一般会有5-20%的损耗, 容器运行基本无损耗, 所以生产中一台物理机只能运行数十个虚拟机, 但是一般可以运行数百个容器。
        启动速度更快:可以在数秒内完成启动。
        占用空间更小:容器一般占用的磁盘空间以MB为单位, 而虚拟机即使是最小化安装也要占1个G多的空间。
        集成性更好:和CI/CD相关技术结合性更好, 实现打包镜像发布测试可以一键运行, 做到自动化并快速的部署管理, 实现高效的开发生命周期。文章来源地址https://www.toymoban.com/news/detail-782531.html

到了这里,关于Docker 介绍 及 支持的操作系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 银河麒麟操作系统 v10 中离线安装 Docker

    可以看到,系统处理器架构为 ARM 架构;如果为 x86 架构的,则会显示 x86_64 ; https://download.docker.com/linux/static/stable/ 点进去,选择想要安装的版本,我这里为了跟测试环境保持一致,下载了一个相对旧点的版本: docker-20.10.6.tgz 下载完成后,上传至服务器 /opt 目录下,然后解压

    2024年01月23日
    浏览(72)
  • centos 7下安装Docker(附根据操作系统日志排查问题思路)

    Docker简介 Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。 1、Docker 要求 CentOS 系统的内核

    2023年04月19日
    浏览(42)
  • 信创麒麟操作系统卸载docker,并分别用在线、yum、rpm三种方式安装信创的docker

    备注:操作前建议对机器打快照备份,或者备份好数据,如未使用,第一次部署的情况可直接操作 一、卸载DataEase自带的docker 二、安装信创系统的docker 1、联通外网 2、未通网,有yum源 3、未联通外网,无yum源通过rpm安装部署docker 1)确认当前系统的版本 如图: 2)根据系统在

    2024年02月13日
    浏览(128)
  • Linux系统Ubuntu以非root用户身份操作Docker的方法

      本文介绍在 Linux 操作系统 Ubuntu 版本中,通过配置,实现以 非root用户 身份,进行 Docker 各项操作的具体方法。   在文章Linux系统Ubuntu配置Docker详细流程(https://blog.csdn.net/zhebushibiaoshifu/article/details/132612560)中,我们介绍了开源容器化平台和工具集 Docker 的详细配置方法

    2024年02月10日
    浏览(49)
  • 【基于Docker-Compose安装ELK日志系统完整操作步骤】

    ELK是三个开源软件的缩写,分别是Elasticsearch、Logstash、Kibana,一般情况下会结合FileBeat使用 。 Elasticsearch :是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Kibana :是一款开源

    2024年02月10日
    浏览(52)
  • 利用docker部署深度学习环境摆脱操作系统版本限制与cuda版本限制

    大体思路如下: 1、客户安装操作系统是Ubuntu22.04,利用docker拉取Ubuntu18.04精简版镜像 2、离线下载是宿主机适配的NVIDIA驱动离线包、docker离线包、nvidia docker离线包、gcc离线包(也可以使用联网安装)、项目所需要的对应版本的cuda安装包、cudnn安装包 步骤一: 1、在宿主机安装

    2023年04月26日
    浏览(45)
  • 银河麒麟高级服务器操作系统V10下载安装及安装docker

    银河麒麟操作系统v10是中国电子研发的操作系统,该系统充分适应5G时代需求,打通手机、平板电脑、PC等,实现多端融合。 x86/兆芯/海光 Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso 链接:https://pan.baidu.com/s/16sa8sumcJzXI95ip9gwptg 提取码:wxyu arm64/飞腾/鲲鹏 Kylin-Server-10-SP2-aarch64-Rel

    2024年01月16日
    浏览(89)
  • 在Ubuntu操作系统和centos7上安装docker环境的详细步骤

    Ubuntu操作系统安装Docker环境步骤: 如果输出“Hello from Docker!”则表示Docker已经成功安装。 CentOS7安装Docker环境步骤: 如果输出“Hello from Docker!”则表示Docker已经成功安装。

    2024年02月05日
    浏览(109)
  • Linux操作系统下Docker和Docker Compose的安装教程(包含x86和arm64平台离线一键安装资源包)

    本文章将详细介绍Linux下Docker和Docker Compose的安装教程。 目录3为x86和arm64平台Docker离线安装资源包,包含Docker Compose、一键安装脚本使用教程。 相关文章参考: Docker常用基础命令 Docker批量清理删除镜像和容器常用命令 版本如下 名称 版本 CentOS 7.6+ openEuler等其他操作系统可以使

    2024年02月06日
    浏览(50)
  • CasaOS: 一款基于 Docker 生态的开源云系统,打造属于你的智能家庭操作系统

    CasaOS  是一个基于 Golang 的简单、易用、优雅的开源家庭云系统,它旨在将家中各种智能设备整合在一起,提供简洁易用的统一控制界面,让你可以轻松地管理和操控家中的智能设备。 https://gitcode.com/IceWhaleTech/CasaOS 存储:将照片、视频、文档等文件存储在本地,随时随地访问

    2024年04月26日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包