有没有办法在 docker 中仅对单个文件使用绑定挂载

Is there a way to use bind mount, in docker, for a single file only

我正在尝试 运行 一个带有绑定挂载的简单 docker 容器,因此应用程序可以读取和修改 data.json 文件(从主机)。我将 data.json 放在 /home/usr/project 和 运行 容器中

docker container run -it -v /home/usr/project:/app container_name main.exe

项目包含 3 个文件,其余 2 个文件包含在 container build 中。当我尝试 运行 容器时,它给出了关于找不到其他 2 个文件的错误。将这些文件放在本地主机上的 /home/usr/project 中可以解决问题。因为,我希望容器只查找 data.json,有什么办法可以做到这一点,而不必将其他 2 个文件不必要地保留在绑定安装目录中

您可以在 docker

中映射单个文件

docker run -it -v /home/usr/project/data.json:/app/data.json alpine cat /app/data.json

您甚至可以将它们设为只读在容器内以避免不必要的修改

docker run -it -v /home/usr/project/data.json:/app/data.json:ro alpine cat /app/data.json