Ошибка HNS с ошибкой: неверный параметр

Я делаю докер-контейнерное приложение с помощью Visual Studio 2017. При первом запуске докера через Visual Studio я получил сообщение об ошибке «ОШИБКА: версия клиента 1.22 слишком старая».

Эта ошибка была устранена путем обновления docker compose до версии 2.1.

Ссылка ниже содержит дальнейшие инструкции об этой конкретной ошибке.

ОШИБКА: версия клиента 1.22 слишком старая

После устранения этой ошибки при создании докера теперь я получаю сообщение «Ошибка HNS с ошибкой: неверный параметр».

Из нескольких обсуждений на github я обнаружил, что это ошибка сети Windows.

Есть ли решение этой проблемы? Должен ли я снизить версию докера или установить что-то еще.

Я использую контейнер Windows. При запуске версии докера Клиент: Версия: 17.06.0-ce Версия API: 1.30 Версия Go: go1.8.3 Git commit: 02c1d87 Построен: Пт, 23 июня, 21:30:30 2017 OS / Arch: windows / amd64

Сервер: Версия: 17.06.0-ce Версия API: 1.30 (минимальная версия 1.24) Версия Go: go1.8.3 Git commit: 02c1d87 Построен: Пт, 23 июня, 22:19:00 2017 OS / Arch: windows / amd64 Экспериментально: true

Редактировать:

Если я перейду на контейнер linux, эта проблема будет решена. Но возникает другая проблема: диск не используется совместно. После совместного использования d: drive проблема с совместным использованием диска все еще возникает.

Как я могу решить проблему совместного использования диска в контейнере Linux.

Я хочу использовать контейнер Windows локально, чтобы можно было развернуть это приложение на лазурном сервере.


person Khalil    schedule 29.07.2017    source источник
comment
Попробуйте очистить сетевой стек докеров (github. com / Microsoft / Virtualization-Documentation / tree / master /)   -  person Gregory Suvalian    schedule 30.07.2017


Ответы (3)


Это известное ограничение. В настоящее время Windows поддерживает только одну сеть NAT. Удаление Netnat с помощью вызова Remove-Netnat не поддерживается.

Запустите это в Powerhell.

Get-NetNat | Remove-NetNat

person Khalil    schedule 30.07.2017
comment
Здравствуйте, я использую эти команды и запускаю docker-compose up -d nginx и возвращаю ошибку: ОШИБКА: необходимо воссоздать сеть laradock_default - параметр com.docker.network.windowsshim.hnsid изменился - person Junior Mcq; 28.09.2017
comment
Найдите похожие проблемы в репозитории laradock на github. Вы можете найти ответ. - person Khalil; 30.09.2017
comment
На всякий случай, если кому-то понадобится заняться этой проблемой github.com/docker/for- win / issues / 598 - person Sibeesh Venu; 12.06.2018

Чтобы docker-compose не создавал новую сеть по умолчанию, вы можете использовать существующую, указав ее в docker-compose.yml:

networks:
    default:
        external:
            name: nat

Чтобы проверить существующие сети, выполните

docker network ls
person Daniel K    schedule 31.05.2021

Откройте PowerShell (X64) в режиме администратора. Выполните команду ниже.

Get-NetNat 

Если он вернет что-то вроде этого

введите описание изображения здесь

Затем запустите команду ниже в PowerShell

Remove-NetNat
person Rajan Domala    schedule 05.12.2019