HNS failed with error : The parameter is incorrect

HNS failed with error : The parameter is incorrect

我正在使用 visual studio 2017 制作一个 docker 容器化应用程序。 当 运行 docker 到 visual studio 首先,我得到一个错误 "ERROR: client version 1.22 is too old".

此错误已通过将 docker compose 更新到版本 2.1

解决

下面 link 包含有关此特定错误的进一步说明

ERROR: client version 1.22 is too old

解决此错误后,在构建 docker 上,我现在得到 "HNS failed with error : The parameter is incorrect."

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

这个问题有解决办法吗? 我应该降级 docker 版本还是安装其他东西。

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

服务器: 版本:17.06.0-ce API版本:1.30(最低版本1.24) 转版本:go1.8.3 Git 提交:02c1d87 建成时间:2017 年 6 月 23 日星期五 22:19:00 OS/Arch: windows/amd64 实验性:true

编辑:

如果我切换到 linux 容器,这个问题就解决了。 但另一个问题发生驱动器不共享。 共享d:盘后驱动共享问题依旧

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

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

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

运行 这在 powerhell 中。

Get-NetNat | Remove-NetNat

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

Get-NetNat 

如果它returns像这样

然后 运行 在 powershell 命令下面

Remove-NetNat

为了防止 docker-compose 创建新的 default 网络,您可以通过在 docker-[=18= 中指定它来使用现有网络]:

networks:
    default:
        external:
            name: nat

检查现有网络执行

docker network ls