Docker:基础镜像

2024-04-17

我试图理解 Docker 概念,但我无法理解一件事:

据我了解,镜像(即容器)可以从不同的 Linux 发行版实例化,例如 Ubuntu、CentOS 等。

假设我在主机上运行标准 Ubuntu 14.04,

  • What happens if I use container that is not instantiated from same distributive?
    • 不是14.04?
    • 不是 Ubuntu(或任何其他基于 Debian 的系统)?
    • 使用您使用的图像的不同基础图像有什么缺点? (假设我使用使用Ubuntu作为基础镜像的镜像A,使用Debian作为基础镜像的镜像B以及使用CentOS作为基础镜像的镜像C)?

额外问题:如果开发人员未在 Docker 中心描述中指定镜像,我如何判断镜像使用的基础镜像?

先感谢您!


Docker 确实not使用 LXC(不自 Docker 0.9 起 https://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/)但是 libcontainer (现在runc https://github.com/opencontainers/runc),一个内置的执行驱动程序,用于操作命名空间、控制组、功能、apparmor 配置文件、网络接口和防火墙规则 - 所有这些都以一致且可预测的方式进行,并且不依赖于 LXC 或任何其他用户层包。

docker 镜像代表一组文件,winch 将作为容器在自己的内存、磁盘和用户空间中运行,同时访问主机内核。
这与 VM 不同,VM 不访问主机内核,而是通过其自身的硬件/软件堆栈包含自己的硬件/软件堆栈。管理程序 https://en.wikipedia.org/wiki/Hypervisor.
容器只需在主机中设置限制(磁盘、内存、CPU)。实际的虚拟机必须构建一个全新的主机。

该 docker 镜像(文件组)可以是任何东西,只要:

  • 它不依赖于主机库(因为它被隔离在自己的磁盘空间中,因此它无法访问主机文件,除非已安装卷 https://docs.docker.com/engine/tutorials/dockervolumes/#/mount-a-host-directory-as-a-data-volume)
  • 它只执行系统调用:请参阅“Docker 中的共享内核是什么意思? https://stackoverflow.com/a/32757109/6309"

这意味着图像可以是anything:另一个 Linux 发行版,甚至是单个可执行文件。任何可执行文件在 go 中编译(https://golang.org/ https://golang.org/)例如,可以打包在自己的 docker 镜像中,无需任何 Linux 发行版:

FROM scratch
COPY my_go_exe /
ENTRYPOINT /my_go_exe

scratch是“空”映像,并且 go 可执行文件是静态链接的,因此它是独立的,仅依赖于对内核的系统调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker:基础镜像 的相关文章

随机推荐

  • 如何将样式应用于列表中的相邻元素

    我可以只使用 CSS 来完成这个场景吗 我有一个任意长度的元素的无序列表 这些元素排列成一个由四个元素组成的网格 当用户将鼠标悬停在某个元素上时 一些附加内容将在该元素下方下拉 并将其下方的行向下推 Content is here
  • 如何将 CSS 翻译添加到现有翻译中?

    我使用 CSS 翻译将 DIV 元素放置在屏幕上 这工作得很好 除了当稍后位移相同的元素时 原始位移被丢弃 使用 javascript 设置 CSS 起始位置 div style transform translate 800px 400p
  • 监控我的应用程序在 Android 中占用的内存

    我正在尝试优化我的应用程序消耗的内存量 当我的应用程序加载时 按住 home 键 然后选择任务管理器 我可以看到该应用程序占用了 17MB 但该值不会刷新 我如何实时跟踪该值 DDMS 有这个选项吗 请具体说明我已经搜索了很多但没有找到 提
  • 如何使用 start 和 endAngle 渲染 svg 圆

    我使用 start 和 endAngle 渲染了 svg 圆 效果很好 但是当我渲染完整的圆 startAngle为70 endAngle为70 时 输出有很大的不同 0 90 180 270除外 我为这段代码做错了什么 function
  • 如何从 Kubernetes Pod 连接到私有 IP

    我正在尝试从 Pod 内连接到私有 IP 从 Pod 对该 IP 执行 Ping 操作返回无法访问 但是 我可以从主机系统 ping 该 IP 将流量从 pod 路由到目标私有 IP 的最佳方式是什么 Pod 不允许直接连接到 kubern
  • AVAudioPlayer 在调试模式下抛出断点

    每次我加载应用程序时 它都会停止 就像我在此行设置了断点一样 self audioPlayer AVAudioPlayer alloc initWithData dataPersister loadData self fileName er
  • 如何从 Java 系统设置中获取代理设置

    我正在寻找如何在 Windows 下使用 Java 获取系统代理信息的方法 但我只找到了一种方法 但这对我不起作用 public static void main String args throws Throwable System se
  • 红宝石数组内部结构

    ruby 数组内部是如何实现的 主要是在 CRuby 中 但欢迎任何其他信息 它们是像 C 向量一样可增长的数组还是基于列表的 移位 取消移位以及通过索引访问元素的复杂性是多少 它们是可增长的数组 在最后增长 shift is O 1 un
  • hive中每行的百分比计算

    我在配置单元中有一个具有以下架构的表 差值 int 计数值 int 值为 5 2 30 1 90 1 100 1 现在我想找到每个 count value 与 count value 总和的百分比 每行的值类似于 count value s
  • 终止设备上的调试

    我对设备上的调试有点困惑 当我使用模拟器时 在调试会话之后 我只需关闭模拟器窗口 但是在我的设备上调试时 如何关闭会话 只需断开 USB 电缆即可 并且安装的 apk 由Eclipse安装 应该手动删除 您可以通过转到 调试 视角 右键单击
  • 当 readdir() 返回文件名时,stat() 错误“没有这样的文件或目录”

    我无法识别 stat 引发的错误 下面的程序读取目录中的所有文件并打印文件名 DIR dp struct dirent dirp struct stat sb if dp opendir argv 1 NULL perror can t o
  • WPF - MVVM - 组合框选定项

    I have ViewModel 实施的INotifyPropertyChanged 在后台和类中Category它只有一个 type 属性string 我的 ComboBox SelectedItem 绑定到类别的实例 当我更改实例的值时
  • 如何更改导航视图中的分隔符颜色?

    我正在尝试使用 NavigationView 来实现 NavigationDrawer 我通过在菜单中设置组 ID 添加了分隔符 但是我看不到分隔符 我想这是因为分隔符颜色与背景相同 所以我想改变分隔符的颜色 但我找不到办法改变它 谁能帮我
  • 如何迭代大型输入文件?

    我正在尝试访问通过输入字段上传的文件内容的迭代器 我可以通过 web sys 将 JS 文件传递 到 Wasm 中 但是我一生都无法弄清楚如何访问 Rust 中传递的文件的长度和名称之外的任何内容 我想我可以将整个文件作为 ByteArra
  • Windows npm 中的 Glob 通配符

    我试图让 npm 在脚本文件夹上构建 browserify 问题是 我在 Windows 上 执行folder js 似乎不起作用 我尝试过全局安装 glob 但每当我运行构建命令时 都会返回错误 提示 找不到模块 c www projec
  • 如何从 Web 服务响应中读取 HTTP 响应标头?

    如何从 C 中的 Web 服务响应中读取 HTTP 响应标头 在深入研究 MSDN 之后 我所需要做的就是覆盖GetWebResponse方法 然后我可以访问响应头 public class MyWSProxy HttpWebClientP
  • 执行多尺度训练(yolov2)

    我想知道多尺度训练如何YOLOv2 https arxiv org pdf 1612 08242 pdf works 论文中指出 原始YOLO使用的输入分辨率为448 448 通过添加锚框 我们将分辨率更改为416 416 然而 由于我们的
  • CodeIgniter:帮助从网页获取元标记的类/库?

    我正在使用代码点火器 我想我使用哪个 php 框架并不重要 但在我编写自己的类之前 已经编写了另一个类 该类允许用户获取任何站点的页面标题和元标记 关键字 描述 如果有的话 任何能够做到这一点的 PHP 类都很棒 谢谢大家 你应该看看这个类
  • 如何设置文本字段字符限制 SwiftUI?

    我正在使用 SwiftUi 版本 2 进行应用程序开发 我遇到了 SwiftUI 中可用文本字段的问题 我不想再使用 UITextField 了 我想限制文本字段中的字符数 我搜索了很多 找到了一些与此相关的答案 但这些答案不适用于 Swi
  • Docker:基础镜像

    我试图理解 Docker 概念 但我无法理解一件事 据我了解 镜像 即容器 可以从不同的 Linux 发行版实例化 例如 Ubuntu CentOS 等 假设我在主机上运行标准 Ubuntu 14 04 What happens if I