【问题标题】:Is updating a package inside a docker the way to go?更新 docker 内的包是要走的路吗?
【发布时间】:2021-04-23 13:11:19
【问题描述】:

我最近一直在摆弄 Docker 并尝试这个image。我刚刚了解了 ENTRYPOINT 是什么以及 Docker 的几个新命令,但后来我想:如果我想更新该映像的 NMAP 版本怎么办?我继续尝试了 apt 的东西,然后我意识到它是在 Alpine 上构建的,wchich 使用 apk 并发现它没有安装,我不知道为什么。

也许这张图片的所有者删除了它?如果是这样,我应该能够对已安装的包执行更新,还是图像维护者的任务?

【问题讨论】:

    标签: docker alpine nmap


    【解决方案1】:

    正如您分享的图像的dockerfile 中所见,它具有 alpine linux 图像作为基础图像,并且没有任何 apk 的删除步骤。它还在 dockerfile 的开头有两个参数,然后用于在此映像中安装 nmap:

    ARG nmap_ver=7.91

    ARG build_rev=4

    这意味着你可以下载这个 Dockerfile,将这个 Dockerfile 中的版本更改为你想要的本地版本,然后构建一个镜像:

    docker build -t nmap_myversion .
    

    然后用你自己的镜像运行一个容器:

    docker run -d --name my_nmap nmap_myversion
    

    回答您的问题在已创建的映像中更新软件不是一个好方法,因为它会在您的 docker 容器中创建一个新层,该层将在容器删除后丢失。 最好的选择是在图像中完成此操作。很好的例子是如何创建这个 nmap 映像(参见上面的 Dockerfile)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-14
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多