docker run 期间的 docker 卷

标签 docker docker-volume docker-run

我正在尝试在 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/

相关文章:

powershell - 如何使用 docker run 命令执行 ps1 脚本?

Docker compose指定容器网络作为主机网络

docker - Docker在docker swarm群集上组成单独的节点上的单独容器

django - 在 docker build 中运行 "/usr/local/bin/gunicorn"说 "stat/usr/local/bin/gunicorn: no such file or directory"

docker - Docker 中的绑定(bind)挂载和主机卷是一样的吗?

由于卷中容器创建的链接,Docker-compose 构建失败

postgresql - 主机上的 Docker Postgres 数据量

node.js - 如果我在 dockerfile 中写入 RUN Node Index.js 而不是 CMD Node Index.js,会发生什么情况?

docker - 无法发现 docker 容器

docker - 如何从同一主机上的虚拟机 ping docker 容器?