Skip to content

Remote Docker Host on Windows broken due to "dial-stdio" #4718

Description

@MrBuddyCasino

Description

Using a remote Docker host using ssh://user@machine.local on Windows from From a Mac isn't working:

$ docker ps
error during connect: Get "http://docker.example.com/v1.24/containers/json": command [ssh -l michael -- michael-t1.local docker system dial-stdio] has exited with exit status 1, please make sure the URL is valid, and Docker 18.09 or later is installed on the remote host: stderr=the raw stream connection does not implement halfCloser

This occurs with the remote Windows shell set to cmd.exe or bash.exe from git-bash.
Running docker system dial-stdio directly on Windows produces the same the raw stream connection does not implement halfCloser error message.

Docker version on Windows (server): Docker version 24.0.7, build afdd53b
Docker version on Mac (client): Docker version 24.0.2, build cb74dfc

I found related issues that claim to fix this, such as #1376, #4708 or #1718, but they don't help.

Note that it does work with the following prerequisites:

  • The Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH\DefaultShell key is set to C:\Windows\System32\bash.exe
  • besides Docker Desktop (or Rancher Desktop), there is another default WSL distribution installed, eg Ubuntu
  • the Docker cli tools are installed in that distribution (but not the engine)

Reproduce

Run docker system dial-stdio on Windows, or setup a remote Docker profile using the Windows OpenSSH server with key-based auth and perform any Docker cli action.

Expected behavior

Remote Docker hosts on Windows should work.

docker version

Client:
Cloud integration: v1.0.35+desktop.5
Version: 24.0.7
API version: 1.42 (downgraded from 1.43)
Go version: go1.20.10
Git commit: afdd53b
Built: Thu Oct 26 09:08:44 2023
OS/Arch: windows/amd64
Context: default
Server:
Engine:
Version: 23.0.6
API version: 1.42 (minimum version 1.12)
Go version: go1.20.10
Git commit: 9dbdbd4b6d7681bd18c897a6ba0376073c2a72ff
Built: Thu Oct 12 14:14:03 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.7.2
GitCommit: 0cae528dd6cb557f7201036e9f43420650207b58
runc:
Version: 1.1.7
GitCommit: 860f061b76bb4fc671f0f9e900f7d80ff93d4eb7
docker-init:
Version: 0.19.0
GitCommit:

docker info

Client:
Version: 24.0.7
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2
Path: C:\Users\michael\.docker\cli-plugins\docker-buildx.exe
compose: Docker Compose (Docker Inc.)
Version: v2.22.0
Path: C:\Users\michael\.docker\cli-plugins\docker-compose.exe
dev: Docker Dev Environments (Docker Inc.)
Version: v0.1.0
Path: C:\Program Files\Docker\cli-plugins\docker-dev.exe
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.21
Path: C:\Program Files\Docker\cli-plugins\docker-extension.exe
feedback: Provide feedback, right in your terminal! (Docker Inc.)
Version: 0.1
Path: C:\Program Files\Docker\cli-plugins\docker-feedback.exe
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v0.1.0-beta.10
Path: C:\Program Files\Docker\cli-plugins\docker-init.exe
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.0
Path: C:\Program Files\Docker\cli-plugins\docker-sbom.exe
scan: Docker Scan (Docker Inc.)
Version: v0.26.0
Path: C:\Program Files\Docker\cli-plugins\docker-scan.exe
scout: Docker Scout (Docker Inc.)
Version: v1.2.0
Path: C:\Program Files\Docker\cli-plugins\docker-scout.exe
Server:
Containers: 45
Running: 32
Paused: 0
Stopped: 13
Images: 22
Server Version: 23.0.6
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 0cae528dd6cb557f7201036e9f43420650207b58
runc version: 860f061b76bb4fc671f0f9e900f7d80ff93d4eb7
init version:
Security Options:
seccomp
Profile: builtin
Kernel Version: 5.15.133.1-microsoft-standard-WSL2
Operating System: Rancher Desktop WSL Distribution
OSType: linux
Architecture: x86_64
CPUs: 16
Total Memory: 15.2GiB
Name: michael-t1
ID: ba90687d-ef22-4fc5-96d1-e901d8762aa1
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
private-docker-registry.local:5000
127.0.0.0/8
Live Restore Enabled: false
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions