17
votes

I am making a docker containerized application using visual studio 2017. When running docker through visual studio first, I got an error that "ERROR: client version 1.22 is too old".

This error was resolved by updating docker compose to version 2.1

Below link contains further instruction about this specific error

ERROR: client version 1.22 is too old

After this error was resolved ,On Building docker now I get "HNS failed with error : The parameter is incorrect."

From multiple github discussion I have found that it is a windows network error.

Is there a solution to this problem ? Should I down grade docker version or install something else.

I am using windows container. On running docker version Client: Version: 17.06.0-ce API version: 1.30 Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:30:30 2017 OS/Arch: windows/amd64

Server: Version: 17.06.0-ce API version: 1.30 (minimum version 1.24) Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 22:19:00 2017 OS/Arch: windows/amd64 Experimental: true

Edit:

If I switch to linux container this problem is solved. But another issue occurs drive is not shared. After sharing d: drive drive sharing issue still occurs.

How can I resolve linux container drive sharing issue.

I want to use windows container locally so that I can deploy this app on azure.

3

3 Answers

34
votes

This is a known limitation. At present windows only supports one NAT network. Removing Netnat by invoke Remove-Netnat is not supported.

Run this in powerhell.

Get-NetNat | Remove-NetNat

2
votes

To prevent docker-compose from creating a new default network you can use the existing one by specifying it in docker-compose.yml:

networks:
    default:
        external:
            name: nat

To check for existing networks execute

docker network ls
0
votes

Open the powershell(X64) in admin mode Execute below command

Get-NetNat 

If it returns something like this

enter image description here

Then run below command in powershell

Remove-NetNat