docker - Docker 教程: docker run -it ubuntu ls / 使用 git bash (Windows) 给我一个无文件/目录错误
问题描述
我在本教程中讨论数据持久性。
首先,我运行此命令将随机数放入 ubuntu 图像中的文本文件中:
docker run -d ubuntu bash -c "shuf -i 1-10000 -n 1 -o /data.txt && tail -f /dev/null"
我想我很理解这条线。
接下来,指令要求我启动一个新容器(相同的图像),我会看到文件不一样:
docker run -it ubuntu ls /
但是,当我运行上述命令时,出现以下错误:
/ ls: cannot access 'C:/Program Files/Git/': No such file or directory
我正在使用 Git Bash 运行 Windows 10,这是通过 VS Code 完成的。
现在,我通过重新运行确切的命令(docker run -d ubuntu bash -c "shuf -i 1-10000 -n 1 -o /data.txt && tail -f /dev/null "),但我想知道为什么 docker run -it ubuntu ls / 指令失败,解决方案是什么?
解决方案
我设法解决了这个问题,所以我在这里发布解决方案,以防人们将来遇到同样的问题:git bash 改变了绝对路径,所以它应该被禁用。
将其放入 .bashrc 以更正处理路径的方式:
# Workaround for Docker for Windows in Git Bash.
docker()
{
(export MSYS_NO_PATHCONV=1; "docker.exe" "$@")
}
不幸的是,这在从 npm 脚本等调用 docker run 的情况下不起作用。卷映射仍然会中断。
请参阅此处以继续探索问题并查看可能的解决方法
推荐阅读
- python - 如何在 Kivy 中填充小部件?
- python - CS50 金融的符号无效,即使我使用了正确的符号
- c# - 当您将 lambda 函数作为参数传递给任务时,它是在任务线程还是调用者线程上运行?
- python - 如何去掉方括号
- reactjs - ag-grid-react reactjs中的行点击事件的名称是什么?
- node.js - 我想读取一个 Json 并返回所有具有相同“TANK”的“OP”(我正在使用节点)。根据例子
- algorithm - Kotlin:如何从 Android 上的 firebase 获取用户电子邮件/用户名
- python - 删除不需要的字符,并从 JSON 响应中写入
- php - 找不到表
- c# - 根据选中时切换内容的 ToggleButton 制作自定义控件(VisualState 问题)