Docker Compose Up给出“系统找不到指定的文件”。错误

时间:2017-02-05 12:51:39

标签: python docker docker-compose

我最近在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

请注意,我的用户系统环境变量中都有C:\Python27C:\Python27\Scripts。我也尝试使用Python 3,它仍然无法正常工作。

16 个答案:

答案 0 :(得分:114)

我只是忘了开始#34; Docker for Windows&#34;导致了这个错误。

答案 1 :(得分:18)

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

但对我来说,问题是我没有通过运行

设置所有环境变量
eval $(docker-machine env <vmname>)

在我运行docker-compose <any command>

之前

答案 2 :(得分:16)

使用Docker Quickstart Terminal运行[ {'laminate': 'D', 'post': '5', 'POC1': '2', 'id': '1', 'costgroup': '1'}, {'laminate': 'D', 'post': '4', 'POC1': '1', 'id': '1', 'costgroup': '2'}, {'laminate': 'D', 'post': '2', 'POC1': '5', 'id': '1', 'costgroup': '3'}, {'laminate': 'T', 'post': '5', 'POC1': '2', 'id': '2', 'costgroup': '1'}, {'laminate': 'T', 'post': '4', 'POC1': '1', 'id': '2', 'costgroup': '2'}, {'laminate': 'T', 'post': '2', 'POC1': '5', 'id': '2', 'costgroup': '3'}, {'laminate': 'T', 'post': '2', 'POC1': '5', 'id': '2', 'costgroup': '3'}] 。它将解决您的错误。

Docker Quickstart Terminal 主要是常规shell,但允许创建默认计算机。它也可用于连接其他机器:

docker-compose

答案 3 :(得分:11)

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

答案 4 :(得分:4)

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

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

答案 5 :(得分:4)

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

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

答案 6 :(得分:3)

我在Windows机器上花了将近一个小时修复此问题。

  1. 安装Python(版本3.6.1对我来说很好),选择选项&#34;添加到PATH&#34;。
  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的文件夹具有完全访问权限。

答案 7 :(得分:2)

在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 Home上。这解决了我的问题。

答案 8 :(得分:2)

Quitting Docker and stopping Docker VM solved this for me.

答案 9 :(得分:2)

我遇到了同样的问题。

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

答案 10 :(得分:2)

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

  • ./:/app:cached 致
  • "./:/app:cached"

答案 11 :(得分:0)

在Docker Quickstart终端挂断了一段时间后,我遇到了这个问题&#34;等待IP ...&#34;在启动期间。

重新启动Docker Quickstart终端修复了所有内容。

答案 12 :(得分:0)

我使用的是Docker Toolbox,因为我在Windows 8.1上。经过数小时的故障排除后,我通过以下方式解决了这个问题:

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

答案 13 :(得分:0)

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

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

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

答案 14 :(得分:0)

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

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

答案 15 :(得分:0)

如果已安装并激活Windows的docker,但从未登录,则会引起相同的错误。