Docker: 如何使用本地文件?

Docker: how to work with local files?

场景是这样的:我有一个 Docker 图像,它应该在不同的机器上 运行。让我们假设图像中的软件

  1. 读取文件,
  2. 根据该文件计算内容
  3. 写入输出文件。

现在,输入文件的内容因用户而异,因此替换它一定很容易。此外,输出文件应该在容器终止后可供用户使用。

当我将输入文件包含到图像中时,容器 运行 很好,但这并不方便,甚至不接近它应该是什么样子。我是 Docker 的新手,我确实阅读了 "Manage data in containers"-tutorial 但是我觉得不需要太多 docker-volume-creation-and-management 会更优雅用户。预期目的是节省安装时间(docker 安装除外)并使软件的部署尽可能简单。

您可以使用-v 将主机目录或文件挂载到容器中。这将使您可以灵活地决定使用哪个输入文件,因为它驻留在主机上而不将其包含在图像中。 例如

docker run -v <host dir>:/container_data_dir image cmd_to_run