从基础镜像撤消 Dockerfile VOLUME 指令
Undo Dockerfile VOLUME directive from a base image
我有一张来自Postgres官方镜像的镜像,其Dockerfile包含以下内容:
VOLUME /var/lib/postgresql/data
我想根据这个官方图像创建我自己的图像,但我不希望它引用任何卷。我希望 Postgres 数据在我的图像中。
有什么想法吗?
您无法撤消 VOLUME
指令。
在 github 上查看这个未解决的问题:Reset properties inherited from parent image #3465
根据这些问题的答案,有一些解决方案:
- How to remove a volume in a Dockerfile
您可以复制基本图像并手动删除 VOLUME
。
解决方法,请参阅 docker-copyedit。该脚本会将 docker save
和图像放入存档以修改其元数据,然后 docker load
将其恢复为图像。
如果您不关心体积而只想将数据放在图像中,则必须为数据使用另一个位置,您可以使用环境变量 PGDATA
来定义新位置。
我有一张来自Postgres官方镜像的镜像,其Dockerfile包含以下内容:
VOLUME /var/lib/postgresql/data
我想根据这个官方图像创建我自己的图像,但我不希望它引用任何卷。我希望 Postgres 数据在我的图像中。
有什么想法吗?
您无法撤消 VOLUME
指令。
在 github 上查看这个未解决的问题:Reset properties inherited from parent image #3465
根据这些问题的答案,有一些解决方案:
- How to remove a volume in a Dockerfile
您可以复制基本图像并手动删除 VOLUME
。
解决方法,请参阅 docker-copyedit。该脚本会将 docker save
和图像放入存档以修改其元数据,然后 docker load
将其恢复为图像。
如果您不关心体积而只想将数据放在图像中,则必须为数据使用另一个位置,您可以使用环境变量 PGDATA
来定义新位置。