18

我正在使用 Visual Studio 2017 制作一个 Docker 容器化应用程序。首先通过 Visual Studio 运行 Docker 时,出现“错误:客户端版本 1.22 太旧”的错误。

通过将 docker compose 更新到 2.1 版解决了这个错误

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

错误:客户端版本 1.22 太旧

解决此错误后,现在在构建 docker 时,我得到“HNS 失败并出现错误:参数不正确。”

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

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

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

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

编辑:

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

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

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

4

3 回答 3

35

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

在强力地狱中运行它。

Get-NetNat | Remove-NetNat

于 2017-07-30T13:42:02.057 回答
4

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

networks:
    default:
        external:
            name: nat

要检查现有网络,请执行

docker network ls
于 2021-05-31T07:29:29.127 回答
0

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

Get-NetNat 

如果它返回这样的东西

在此处输入图像描述

然后在powershell中运行以下命令

Remove-NetNat
于 2019-12-05T13:42:40.120 回答