Docker:如何使用本地文件?

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

  1. 读取文件,
  2. 计算基于该文件和东西
  3. 写一个输出文件。

现在,input文件的内容因用户而异,因此必须易于更换。 另外,输出文件在容器终止后应该对用户可用。

当我将input文件插入到图像中时,容器运行良好,但这不方便,甚至不能接近它应该是的。 我是Docker的新手,并且读过“pipe理容器中的数据” – 但我觉得不需要用户过多的docker-volume-creation-and-management会更优雅。 预期的目的是为了节省安装时间(除了docker安装),并尽可能简化软件的部署。

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

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