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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1439175
Accepted
mnj
mnj
Asked: 2022-11-05 23:39:32 +0800 CST2022-11-05 23:39:32 +0800 CST 2022-11-05 23:39:32 +0800 CST

如何处理过时的 Docker 镜像?

  • 772

Docker 镜像是在某个时间点构建的,然后它们由这些镜像的用户获取,并基于它们创建容器。查看 Linux 发行版(如 Ubuntu)上出现更新的频率,这是否意味着图像在发布到图像存储库后的第二天就已经过时了?

假设有人为他们的应用创建了一张图片:

FROM ubuntu
RUN apt update -y # or whatever the command to update on Ubuntu is

WORKDIR /myapp
COPY ./* ./
# and some other stuff

应用程序在某一天构建(使用ubuntu:latest从那天开始),所有最新的补丁都通过 应用RUN apt update -y,并且图像被推送到 Docker 存储库。现在,如果第二天在 Ubuntu 的 apt repo 上发布了一些重要的更新(比如一些 openssl 补丁)。我的应用程序呢?在我手动决定重建映像并再次推送之前,现在是否不安全?也许我们实际上不应该关心图像/容器是否过时而只担心运行容器的主机是否是最新的?如果是这样,为什么?

docker
  • 2 2 个回答
  • 43 Views

2 个回答

  • Voted
  1. Best Answer
    pzkpfw
    2022-11-07T05:42:18+08:002022-11-07T05:42:18+08:00

    我将在答案中总结我的想法,而不是发表评论:

    [是]图像(...)在发布到图像存储库后的第二天就已经过时了

    是的,但仅限于任何操作系统和平台上的任何服务器也是如此。可以说,容器的漏洞窗口平均可能更短,因为它们比“普通”服务器更频繁地升级其基础操作系统层,但这并不意味着它们应该被忽略,当然这并不总是正确的——它是很容易想象,与重新部署其他容器相比,修补频率更高的虚拟机。

    如果你安装一个普通的 Ubuntu 虚拟机并放置 30 天,你很可能会有未应用的安全修复程序。对于保持部署 30 天的容器也是如此,这意味着在这两种情况下,如果您不能确保操作系统级别保持最新(例如,通过重新部署整个来自新操作系统映像的容器/虚拟机)。

    我的应用程序呢?在我手动决定重建映像并再次推送之前,现在是否不安全?

    这当然取决于您的应用程序的依赖项是什么。您的应用程序“不安全”的程度与假设的安全固定包对您的应用程序的重要性有关。

    如果您正在运行一个使用 log4j 的 Java 应用程序,并且在 Ubuntu 存储库中修复了一个严重漏洞,那么无论您是在容器还是虚拟机上运行,​​您都同样容易受到攻击,直到您更新该软件包 - 无论是通过apt-get包含新软件包的新 OS 映像或重新部署整个 vm/container 来完成不是重要部分。

    基本问题“我的应用程序是安全的还是受过时软件包中的漏洞影响”并不是真正的 Docker 甚至 Ubuntu 特定的问题,除了 VM 和容器之间明显不同的一种情况,即所有容器与主机共享内核,因此无法从容器内修补内核漏洞,而是直接依赖于部署容器的主机上运行的内核版本。

    • 1
  2. Artur Meinild
    2022-11-05T23:52:23+08:002022-11-05T23:52:23+08:00

    要点:

    1. 大多数容器映像会定期更新以包含更新,包括安全更新。

    2. 容器不像基础系统那样容易受到攻击,因为:

      • 他们在一个孤立的环境中运行
      • 他们只使用包的一个子集
      • 内核仍然属于基础系统
    3. 如果您真的担心某个特定图像,请自己重建它。Dockerfile很可能在 Github 或类似网站上找到。

    一般来说,我不会太担心这个。另一方面,如果您实际上是依靠第三方建筑来提供您的图像,那么一如既往地只信任信誉良好的来源。

    对于生产用途,出于完全相同的原因,通常建议始终构建自己的图像。

    • 0

相关问题

  • 您是否需要具有虚拟化功能的处理器才能在 Snappy Ubuntu Core 上运行 Docker?

  • 码头工人的问题

  • 如何在没有 sudo 的情况下使用 docker?

  • 如何升级 Docker

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve