docker - docker run 中的卷与。码头工人撰写
问题描述
env:我正在使用 Docker for Mac
在我的 docker-compose 文件中:
client:
stdin_open: true
build:
dockerfile: Dockerfile.dev
context: ./client
volumes:
- /app/node_modules
- ./client:/app
这有效并将当前目录中我的mac上的'client'目录映射到容器中的'app'目录。
但是当我尝试通过 docker run 运行相同的
docker run -v ./client:/app -v /app/node_modules --name clientcont clientimage
这给了我错误
docker: Error response from daemon: create ./client: "./client" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed
现在,我同意“/”是导致问题的字符。我也试过'.client'。同样的问题。唯一有效的是给出绝对路径。
如果我只使用client:/app,这会将 docker VM 主机(不是我的 Mac)上的 docker 卷“客户端”映射到容器中的“应用程序”。但这不是要求。
我的疑问是:docker run 和 docker-compose 在如何使用这些卷上不应该有一致性吗?如果一件事在 docker-compose 中有效,它不应该通过 docker run 以同样的方式工作吗?
解决方案
推荐阅读
- bluetooth - 安全简单配对与 LE 传统配对
- google-apps-script - Google Apps 脚本解压缩文件 - 问题
- scikit-learn - 运行混淆矩阵时样本数量不一致
- javascript - 根据 `react` 数组键值动态改变状态值
- wpf - WPF中的圆角窗口
- reactjs - React 中 Typescript 中的 onKeyPress 类型
- rust - 如何为 Rust 设置 makeprg?
- azure - 在 Azure 应用服务上运行的 ASP.NET Core 3.1 应用针对 1.6 MB json 有效负载引发 EPIPE 错误
- c++ - 定义非常量内联静态成员对编译有什么影响?
- c# - 使用 Response.AddHeader("content-disposition", attachment) 时如何防止跨站点脚本漏洞?