Docker 教程: docker run -it ubuntu ls / 使用 git bash (Windows) 给我一个无文件/目录错误
Posted
技术标签:
【中文标题】Docker 教程: docker run -it ubuntu ls / 使用 git bash (Windows) 给我一个无文件/目录错误【英文标题】:Docker tutorial: docker run -it ubuntu ls / gives me a no file/directory error using git bash (Windows) 【发布时间】:2021-12-18 08:18:07 【问题描述】:我在本教程中讨论data persistence。
首先,我运行此命令将随机数放入 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 / 指令失败,解决方法是什么?
【问题讨论】:
您将在 Windows 上出现意外行为。希望真正的服务器不在 Windows 中。在linux上试试,如果错误一样,分享给我们 感谢您的评论。目标是将包部署到基于 Windows 的机器上。我确信错误不会出现在 Linux 中,但我的意思是,docker 在 Windows 上可用,所以必须有一个解决方法。 【参考方案1】:我设法解决了这个问题,所以我在这里发布解决方案,以防人们将来遇到同样的问题:git bash 改变了绝对路径,所以它应该被禁用。
将其放入 .bashrc 以更正处理路径的方式:
# Workaround for Docker for Windows in Git Bash.
docker()
(export MSYS_NO_PATHCONV=1; "docker.exe" "$@")
不幸的是,这在从 npm 脚本等调用 docker run 的场景中不起作用。卷映射仍然会中断。
请参阅 here 以继续探索该问题并查看可能的解决方法
【讨论】:
以上是关于Docker 教程: docker run -it ubuntu ls / 使用 git bash (Windows) 给我一个无文件/目录错误的主要内容,如果未能解决你的问题,请参考以下文章
部署到 Google Cloud Run 时 Docker 容器无法启动
docker安装出现"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker da