【问题标题】:Why does the new built image does not have the new installed package?为什么新建的镜像没有新安装的包?
【发布时间】:2016-02-18 09:26:35
【问题描述】:

TL;DR:一旦构建了映像,就需要将其作为新容器启动。旧的基础容器不会在构建过程中更新。

我从 ubuntu 开始从 Dockerfile 构建了一个映像,我注意到虽然我在 Dockerfile 上安装了 php5-pgsql:

apt-get update
apt-get install php5-pgsql

成功构建镜像后,我注意到它不会对容器产生任何影响。

我必须执行到容器中,并运行上述命令行,然后重新启动容器,然后才能开始使用已安装的扩展。

任何人都可以解释为什么?图片不是已经安装了扩展吗?

【问题讨论】:

    标签: docker


    【解决方案1】:

    镜像本身只是一个用于运行容器的模板。您必须根据新生成的图像(即模板)启动一个新容器。

    【讨论】:

    • 谢谢,但是我发现新建的镜像没有名字,而我引用的是旧镜像!
    • 您可以使用 -t 选项在 docker build 命令中指定镜像名称/标签
    • 现在可以用了吗?您还可以使用docker commit <container_ID> <new_image_name> 从您正在执行命令的 docker 容器中创建一个新图像。
    猜你喜欢
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2018-07-01
    • 2021-10-27
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2022-09-16
    相关资源
    最近更新 更多