docker docker 运行 期间的交易量

docker volume during docker run

我试图在 docker 运行 期间将容器中存在的库装入 docker 卷。命令如下:

docker run -d  --name   mbus-docker -it --rm --mount source=/mbus/lib/libMurata.a,target=/mbus_volume   mbus-docker

我已经通过在容器中执行来验证该库存在于路径 /mbus/lib/libMurata.a

当我尝试将库装载到卷上时。 我收到以下错误:

docker: Error response from daemon: create /mbus/lib: "/mbus/lib" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.

如果要将 /mbus/lib/libMurata.a 挂载到容器内的 /mbus_volume 路径上,请将挂载类型指定为 bind

你的docker运行命令应该是

docker run -d  --name   mbus-docker -it --rm --mount type=bind,source=/mbus/lib/libMurata.a,target=/mbus_volume/   mbus-docker

这会将 /mbus/lib/libMurata.a 装载到 /mbus_volume/ 文件夹中。

您得到的错误 "/mbus/lib" includes invalid characters for a local volume name/mbus/lib 是无效的卷名。因为挂载选项的默认绑定类型是 type volume。在这种情况下,它将尝试在您的系统上本地创建一个名为 /mbus/lib 的卷,这是一个无效的卷名。

请通过this

希望这对您有所帮助。

更新:

如果您的主机上存在名为 mbus_volume 的卷。然后试试这个:

docker run -d  --name   mbus-docker -it --rm --mount type=volume,source=mbus_volume,target=/mbus/lib/  mbus-docker

你可以只使用:

docker run -d  --name   mbus-docker -it --rm -v /mbus/lib/libMurata.a:/mbus_volume/libMurata.a mbus-docker