【问题标题】:Docker Compose Up gives "The system cannot find the file specified." errorDocker Compose Up 给出“系统找不到指定的文件”。错误
【发布时间】:2017-06-22 11:29:45
【问题描述】:

我最近在我的 Windows 10 机器上安装了 Docker Toolbox。

但是,每当我运行 docker-compose up 时,我都会收到以下错误消息:

Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose\cli\main.py", line 65, in main
  File "compose\cli\main.py", line 117, in perform_command
  File "compose\cli\main.py", line 849, in up
  File "compose\project.py", line 372, in up
  File "compose\project.py", line 539, in warn_for_swarm_mode
  File "site-packages\docker\api\daemon.py", line 33, in info
  File "site-packages\docker\utils\decorators.py", line 47, in inner
  File "site-packages\docker\client.py", line 139, in _get
  File "site-packages\requests\sessions.py", line 488, in get
  File "site-packages\requests\sessions.py", line 475, in request
  File "site-packages\requests\sessions.py", line 596, in send
  File "site-packages\requests\adapters.py", line 423, in send
  File "site-packages\requests\packages\urllib3\connectionpool.py", line 595, in urlopen
  File "site-packages\requests\packages\urllib3\connectionpool.py", line 363, in _make_request
  File "httplib.py", line 1057, in request
  File "httplib.py", line 1097, in _send_request
  File "httplib.py", line 1053, in endheaders
  File "httplib.py", line 897, in _send_output
  File "httplib.py", line 859, in send
  File "site-packages\docker\transport\npipeconn.py", line 31, in connect
  File "site-packages\docker\transport\npipesocket.py", line 22, in wrapped
  File "site-packages\docker\transport\npipesocket.py", line 49, in connect
pywintypes.error: (2, 'WaitNamedPipe', 'The system cannot find the file specified.')
docker-compose returned -1

请注意,我的 usersystem 环境变量中都有 C:\Python27C:\Python27\Scripts。我也用 Python 3 试过,还是不行。

【问题讨论】:

  • 可能和这个问题一样? github.com/shipping-docker/php-app/issues/19
  • 您能否添加docker-compose 配置让我们知道您是在映射卷还是在使用哪个映像?
  • 能否添加相关代码和Dockerfile配置?
  • 我使用 windows 7 并且在命令行上使用此命令时遇到同样的问题。但是从 Kitematic docker cli 中启动命令对我有用(窗口左下角的按钮)

标签: python docker docker-compose


【解决方案1】:

您可能在 docker-compose.yml 文件的某处遗漏了引号 例如。更改音量:

  • ./:/app:cached 到
  • "./:/app:cached"

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。

    启动 docker 守护进程解决了这个问题。只需按 windows 键搜索 docker 并单击“Docker Dekstop”。守护程序应该在一分钟内运行。

    【讨论】:

      【解决方案3】:

      如果安装并激活了docker for windows,但从未登录过,也会导致同样的错误..

      【讨论】:

        【解决方案4】:

        重启 Docker Desktop 后在 Windows 上出现此问题。

        解决方案是关闭我的终端窗口并打开一个新窗口。

        【讨论】:

          【解决方案5】:

          我今天遇到了这个问题,这是在 Windows 上为我解决的问题。

          1. 我进入 Docker 设置,点击左侧的“重置”。
          2. 然后我点击了“重置为出厂默认设置...”
          3. 然后转到“共享驱动器”并为 Docker 启用共享驱动器(无论哪个驱动器),然后单击“重置凭据”,然后插入我的凭据。

          如果一切正常,则在您单击“重置凭据”后,该框将保持选中状态。如果不是,重置您的凭据将导致该框变为未选中状态,您必须再次将 Docker 重置为出厂默认设置。

          【讨论】:

            【解决方案6】:

            退出 Docker 并停止 Docker VM 为我解决了这个问题。

            【讨论】:

              【解决方案7】:

              使用 Docker 快速入门终端运行 docker-compose。它会解决你的错误。

              Docker 快速入门终端 主要是一个普通的 shell,但允许创建默认机器。也可以用来连接其他机器:

              eval $(docker-machine env &lt;MACHINE_NAME&gt;)

              【讨论】:

              • 如果没有怎么办? ;o)
              • 什么是“Docker 快速入门终端”?您可以添加对您的答案的引用吗?通过编辑您的答案来回应,而不是在 cmets 中。
              • Docker for Windows 安装没有附带 Docker Quickstart Terminal。而且 docker-machine 不应该与 windows 一起使用。
              【解决方案8】:

              在 Docker 快速入门终端中,我运行了 docker-machine env,它给了我:

              export DOCKER_TLS_VERIFY="1"
              export DOCKER_HOST="tcp://192.168.99.100:2376"
              export DOCKER_CERT_PATH="C:\Users\TheGeniesis\.docker\machine\machines\default"
              export DOCKER_MACHINE_NAME="default"
              export COMPOSE_CONVERT_WINDOWS_PATHS="true"
              
              #### Run this command to configure your shell:
              eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)
              

              我跑了eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)。就是这样!

              此解决方案复制自 this issue。我使用的是 Windows 10 家庭版。这解决了我的问题。

              【讨论】:

              • 我认为 Docker 不能在 Windows 10 Home 上运行 - 它需要 Windows 10 Professional(或更高版本)(?)
              【解决方案9】:

              自从我使用 Windows 8.1 以来,我就一直使用 Docker Toolbox。经过数小时的故障排除后,我通过以下方式解决了这个问题:

              • 卸载 Python 2.7 并安装 Python 3.6.4 并将其添加到环境变量中。
              • 重新启动 Docker 快速启动终端并从那里运行命令。

              【讨论】:

              • 请添加一些描述
              【解决方案10】:

              我在 Windows 10 上全新安装 Docker 时遇到了这个问题。我的问题是我实际上并没有首先运行 Docker;我刚刚安装了 .msi 并从命令行运行“docker-compose”。

              一旦我运行了 Docker(并遵循了一些安装后的步骤,包括注销和重新启动我的计算机),我就能够毫无问题地运行 docker-compose

              【讨论】:

              • 我不必重新启动。我刚刚重启了我的终端。
              【解决方案11】:

              您可以通过键入以下命令来设置属性:

              docker-machine env --shell cmd default
              @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i
              

              【讨论】:

                【解决方案12】:

                你和我可能有也可能没有同样的问题。在上面@Haken Lid 发布的链接中,问题在于PATH 环境变量没有正确的Python 版本。

                但是,对我来说,问题是我没有通过运行设置所有环境变量

                eval $(docker-machine env <vmname>)
                

                在我运行docker-compose &lt;any command&gt;之前。

                【讨论】:

                  【解决方案13】:

                  确保 Docker for Windows 已启动并在系统托盘中运行。那是我的问题。

                  【讨论】:

                    【解决方案14】:

                    我只是忘记启动“Docker for Windows”导致该错误。

                    【讨论】:

                    • 如果这不起作用,另一种选择是将其关闭并重新打开。关闭快速启动终端,手动打开Virtualbox,停止Docker VM(对我来说,它被命名为default),然后重新打开快速启动终端。这将重新启动引导过程,可能会修复任何与网络相关的错误。
                    • 这里一样,只是忘记启动了
                    • Docker for Windows 在更新后重新启动,但 docker-compose 停止工作;重新启动 Docker 是不够的,因为升级后 Hyper-V 中缺少 Linux VM。关闭 Docker for Windows 允许在重新启动时创建 VM。
                    • 当意识到这是根本原因时感到羞愧!另一方面,错误信息不清楚:(
                    • @Martin 不要感觉太糟糕。我什至不知道将它放在系统托盘中是必需的...... :-D 好吧,解释了那个错误。现在,如果我能弄清楚为什么它不会在我的系统托盘中启动...
                    【解决方案15】:

                    在启动期间 Docker 快速启动终端在“等待 IP ...”上挂起一段时间后,我遇到了这个问题。

                    重新启动 Docker 快速启动终端修复了所有问题。

                    【讨论】:

                      【解决方案16】:

                      我花了将近一个小时在我的 Windows 机器上解决了这个问题。

                      1. 安装Python(3.6.1 版对我来说很好用),选择“添加到路径”选项。
                      2. 安装Docker
                      3. 重新启动您的计算机。
                      4. 在您的通知栏上,您会看到一个 Docker 图标。右键单击它并选择Settings...。转到Shared Drives 并选择C: 驱动器。系统将提示您输入凭据。 [*]
                      5. 运行docker build .
                      6. 运行docker-compose up

                        [*]:如果您不执行此步骤,您可能会在第 6 步时看到此错误:ERROR: for website Cannot create container for service website: C: drive is not shared. Please share it in Docker for Windows Settings。如果在输入您的凭据后未检查 C: 驱动器,请为您的计算机创建一个新用户,该用户对您将运行 docker-compose up 的文件夹具有完全访问权限。

                      【讨论】:

                      • 我不确定凭据选项在更高版本的 Docker for Windows 中是否可用。
                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多