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) 给我一个无文件/目录错误的主要内容,如果未能解决你的问题,请参考以下文章

docker中安装宝塔面板教程

centos下docker安装教程

部署到 Google Cloud Run 时 Docker 容器无法启动

docker安装出现"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker da

如何在 docker 中的节点前为 Cloud Run 设置 nginx?

Docker教程-7-Dockerfile构建镜像原理及指令介绍