【问题标题】:HNS failed with error : The parameter is incorrectHNS failed with error : 参数不正确
【发布时间】:2018-01-05 18:07:24
【问题描述】:

我正在使用 Visual Studio 2017 制作一个 docker 容器化应用程序。 首先通过visual studio运行docker时,出现“ERROR: client version 1.22 is too old”的错误。

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

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

ERROR: client version 1.22 is too old

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

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

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

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

服务器: 版本:17.06.0-ce API 版本:1.30(最低版本 1.24) 围棋版本:go1.8.3 Git 提交:02c1d87 建成时间:2017 年 6 月 23 日星期五 22:19:00 操作系统/Arch:windows/amd64 实验:是的

编辑:

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

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

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

【问题讨论】:

标签: docker docker-compose windows-container


【解决方案1】:

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

networks:
    default:
        external:
            name: nat

检查现有网络执行

docker network ls

【讨论】:

    【解决方案2】:

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

    Get-NetNat 
    

    如果它返回这样的东西

    然后在powershell中运行下面的命令

    Remove-NetNat
    

    【讨论】:

      【解决方案3】:

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

      在 powerhell 中运行它。

      Get-NetNat | Remove-NetNat

      【讨论】:

      • 您好,我正在使用这些命令并运行 docker-compose up -d nginx 并返回错误:错误:需要重新创建网络“laradock_default”-选项“com.docker.network.windowsshim。 hnsid”已经改变了
      • 在 laradock github 存储库中搜索类似问题。你可能会找到答案。
      • 以防万一有人需要跟进这个问题github.com/docker/for-win/issues/598
      猜你喜欢
      • 2021-11-28
      • 2022-12-19
      • 2011-10-21
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 2023-01-21
      • 2020-11-06
      • 1970-01-01
      相关资源
      最近更新 更多