【问题标题】:Dockerfile: run commands in volumeDockerfile:在卷中运行命令
【发布时间】:2017-07-12 09:40:04
【问题描述】:

我正在基于 docker hub 中的现有图像构建图像。在这个官方镜像中,声明了一个卷(数据库的数据目录)。

我想将文件添加到此目录(以初始化数据库)。

但是,每次执行命令后,这个目录的内容似乎都消失了。

如何在此卷目录中应用更改或创建文件?

【问题讨论】:

  • 是的,卷已初始化,例如见container-solutions.com/understanding-volumes-docker
  • RUN 命令无法在构建时修改预定义 VOLUME 的内容,每个新层都会丢弃更改。您可以尝试使用在容器启动时运行的入口点脚本并在该点添加文件。
  • @jww 这个问题为什么要跑题? Stackoverflow 上有近 70,000 个与 Docker 相关的问题,当然它是关于编程/开发的,因为使用 docker 来运行我的数据库和应用程序......

标签: linux docker containers dockerfile volume


【解决方案1】:

您可以将镜像中声明的 VOLUME 挂载到主机。 这样,您将写入卷的任何内容都将存储在主机上。 你可以用这种方式挂载你的卷

docker run -v /foo:/bar example/example command

【讨论】:

  • 在这种情况下,这对我没有帮助,因为我想在构建时初始化容器(这是一个卷)中的数据
  • 我建议使用入口点脚本初始化数据库。这样你的图片尺寸也不会变大。
猜你喜欢
  • 1970-01-01
  • 2019-07-17
  • 2022-12-12
  • 2021-01-29
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多