AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 438683
Accepted
Qwertie
Qwertie
Asked: 2018-04-20 01:50:07 +0800 CST2018-04-20 01:50:07 +0800 CST 2018-04-20 01:50:07 +0800 CST

debian docker 容器内部和 debian VM 之间的实际(非技术)差异是什么?

  • 772

我知道 docker 容器不运行自己的内核,而是与主机共享一个内核,这与运行自己的内核的 VM 不同,但是 debian docker 映像和安装了 debian 的 vm 之间的实际区别是什么?

是否有什么可以在一个内部完成但另一个不能完成,或者它们在功能上是否相同,所以在真正的 debian 安装上运行的任何东西都可以在 docker debian 容器内工作?

主机操作系统也会改变吗?如果我在 CentOS 系统上运行 debian 容器,它的工作方式会与 debian 系统上的 debian 容器不同吗?

debian virtual-machine
  • 1 1 个回答
  • 115 Views

1 个回答

  • Voted
  1. Best Answer
    Yurij Goncharuk
    2018-04-20T02:57:56+08:002018-04-20T02:57:56+08:00

    Docker 容器和 VM 之间的主要实际区别:

    1. Docker 映像只是来自原始系统的基本映像(debootstap有助于获取此基本映像),因此它可能(或不)包含内核、initrd ......但是内核、initrd ......没有意义,而不是研究、开发, 其他包依赖。因此,如果它们不是必需的,则可以安全地移除它们。

    2. Docker 容器从不同的命名空间开始,这些命名空间隐藏了真实的系统进程、网络连接……不受容器影响。简单来说,你不能kill从 Docker 容器到真实的系统进程,但是你可以将 Docker 容器进程看作是来自真实系统的普通进程,并对其进行任何操作。虚拟机组织起来比命名空间概念更困难:所有虚拟机都以由虚拟机软件(VirtualBox,VMware ...)控制的巨大应用程序开始。VM 软件捕获来自该应用程序的所有系统调用并将其传递给真实硬件。因此它们比容器概念慢。

    3. Docker 容器提供运行某些应用程序(特定库版本、软件组件...)所需的支持环境,但不提供内核。因此,如果您的应用程序使用新的内核特性,它们将无法工作。

    4. Docker 容器通常不包含完整的系统映像,因为 Docker 概念的主要目标是共享应用程序。VM的主要目标是共享操作系统。

    启动特定 Docker 映像的真实系统没有区别(您的应用程序依赖特定内核的情况除外)。

    • 3

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve