首页 > 解决方案 > Docker 写入主机中的特定路径?

问题描述

我有一个运行良好的 docker 容器,我的问题是,容器处理一些数据并将 O/P 存储在容器中,但我希望它安装在磁盘上(在特定路径上)。我使用了音量选项,但可能是我以错误的方式使用它,或者有其他方式。对不起,如果这个问题是重复的。任何人都可以解释绑定安装的概念吗?

标签: docker

解决方案


与卷相比,绑定挂载的功能有限。当您使用绑定挂载时,主机上的文件或目录会挂载到容器中。文件或目录由其在主机上的完整路径或相对路径引用。相比之下,当您使用卷时,会在主机上 Docker 的存储目录中创建一个新目录,并且 Docker 管理该目录的内容。如果您使用 --mount 绑定挂载 Docker 主机上尚不存在的文件或目录,Docker 不会自动为您创建它,但会生成错误。

$ docker run -d \
  -it \
  --name devtest \
  --mount type=bind,source="$(pwd)"/target,target=/app \
  nginx:latest

如果您使用 -v 或 --volume 绑定挂载 Docker 主机上尚不存在的文件或目录,则 -v 会为您创建端点。它始终创建为目录。

$ docker run -d \
  -it \
  --name devtest \
  -v "$(pwd)"/target:/app \
  nginx:latest

参考:https ://docs.docker.com/storage/bind-mounts/


推荐阅读