将更改从基础图像传播到 "child" 图像,Docker
Propgate changes from base image to "child" image, Docker
我正在使用 docker,我想知道是否可以传播对基础图像的 "child" 图像的更改。希望以下一系列操作可以更清楚地说明我的意思。
docker run -i -t baseimage // start up baseimage
<detach while leaving baseimage running>
docker commit <baseimage id> childimage // new image created from baseimage
docker run -i -t baseimage // start up baseimage
touch test.txt // make some small change
<detach while leaving baseimage running>
docker commit <baseimage id> baseimage // save base image
docker run -i -t childimage // start up childimage
ls test.text // test.txt isn't there
我想这样做的原因是我有一个基础图像,我从中创建了几个子图像。只有在我创建了子图像之后,我才意识到我需要在所有子图像上安装 java。对我来说,以某种方式将 java 安装到基本映像并将其传播到 "children",而不是遍历每个子映像并安装 java.[=14 会容易得多=]
我承认我是新来的docker,所以这样的事情可能吗?如果没有,您将如何一次修改多个具有相同更改的图像?那可能吗?谢谢
运行 docker 容器以 "instance of" 类型的方式与创建它们的图像相关。这意味着您无法 "propagate" 改变预期的方式。
你最好使用 Dockerfile 来描述如何构建你的 docker 图像,而不是手动修改 运行 容器。
没有
容器是短暂的,你扔掉它们然后重新开始,而不是试图修补它们。
而是使用 Dockerfile 为您的容器创建映像。当您想进行更改时,更新 Dockerfile 并将旧容器替换为新版本。
我正在使用 docker,我想知道是否可以传播对基础图像的 "child" 图像的更改。希望以下一系列操作可以更清楚地说明我的意思。
docker run -i -t baseimage // start up baseimage
<detach while leaving baseimage running>
docker commit <baseimage id> childimage // new image created from baseimage
docker run -i -t baseimage // start up baseimage
touch test.txt // make some small change
<detach while leaving baseimage running>
docker commit <baseimage id> baseimage // save base image
docker run -i -t childimage // start up childimage
ls test.text // test.txt isn't there
我想这样做的原因是我有一个基础图像,我从中创建了几个子图像。只有在我创建了子图像之后,我才意识到我需要在所有子图像上安装 java。对我来说,以某种方式将 java 安装到基本映像并将其传播到 "children",而不是遍历每个子映像并安装 java.[=14 会容易得多=]
我承认我是新来的docker,所以这样的事情可能吗?如果没有,您将如何一次修改多个具有相同更改的图像?那可能吗?谢谢
运行 docker 容器以 "instance of" 类型的方式与创建它们的图像相关。这意味着您无法 "propagate" 改变预期的方式。 你最好使用 Dockerfile 来描述如何构建你的 docker 图像,而不是手动修改 运行 容器。
没有
容器是短暂的,你扔掉它们然后重新开始,而不是试图修补它们。
而是使用 Dockerfile 为您的容器创建映像。当您想进行更改时,更新 Dockerfile 并将旧容器替换为新版本。