HNS失败并显示错误:参数不正确

时间:2017-07-29 21:45:37

标签: docker docker-compose windows-container

我正在使用visual studio 2017制作一个docker容器化应用程序。 当首先通过visual studio运行docker时,我收到错误“ERROR:客户端版本1.22太旧了”。

通过将docker compose更新为版本2.1

解决了此错误

以下链接包含有关此特定错误的进一步说明

ERROR: client version 1.22 is too old

解决了这个错误后,On Building docker现在我得到“HNS失败并出现错误:参数不正确。”

从多个github讨论中我发现它是一个Windows网络错误。

这个问题有解决方法吗? 我应该降低docker版本的级别还是安装别的东西。

我正在使用Windows容器。 在运行docker版本 客户:  版本:17.06.0-ce  API版本:1.30  转到版本:go1.8.3  Git commit:02c1d87  建造:星期五6月23日21:30:30 2017  OS / Arch:windows / amd64

服务器:  版本:17.06.0-ce  API版本:1.30(最低版本1.24)  转到版本:go1.8.3  Git commit:02c1d87  建造:2017年5月23日星期五22:19:00  OS / Arch:windows / amd64  实验:真的

编辑:

如果我切换到linux容器,这个问题就解决了。 但另一个问题是驱动器不共享。 共享后d:驱动器共享问题仍然存在。

如何解决Linux容器驱动器共享问题。

我想在本地使用Windows容器,以便我可以在azure上部署此应用程序。

3 个答案:

答案 0 :(得分:19)

这是一个已知的限制。目前windows只支持一个NAT网络。通过调用Remove-Netnat删除Netnat不受支持。

在powerhell中运行。

Get-NetNat | Remove-NetNat

答案 1 :(得分:2)

为了防止 docker-compose 创建新的默认网络,您可以通过在 docker-compose.yml 中指定来使用现有网络:

networks:
    default:
        external:
            name: nat

要检查现有网络,请执行

docker network ls

答案 2 :(得分:0)

以管理员模式打开powershell(X64) 执行以下命令

Get-NetNat 

如果返回这样的内容

broadcasting

然后在powershell中运行以下命令

Remove-NetNat