我正在尝试在 docker run 期间将容器中存在的库安装到 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 run 命令应该是
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
是无效的卷名。因为 mount 选项的默认绑定(bind)类型是 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 期间的 docker 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57284016/