Skip to content

DaemonHost() returns http://docker.example.com for ssh transport #6164

@scratchmex

Description

@scratchmex

Description

cli.DaemonHost() gives http://docker.example.com when docker host is set to ssh

the behavior comes from getConnectionHelper in

Host: "http://docker.example.com",
the Host is set to http://docker.example.com in connection helper and later updated the host attribute in the cli.Client at
client.WithHost(helper.Host),

the daemon host is specially useful in docker compose when we want to know if the docker host it's remote or not, like you are doing here

func isSocket(addr string) bool {

Reproduce

DOCKER_HOST="ssh://[email protected]" docker 

Expected behavior

we should be able to know whenever the docker cli is accessing the docker host via ssh, unix, pipe, etc

basically we should be able to access docker host used

docker version

Client: Docker Engine - Community
 Version:           28.2.2
 API version:       1.50
 Go version:        go1.24.3
 Git commit:        e6534b4
 Built:             Fri May 30 12:07:26 2025
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          28.2.2
  API version:      1.50 (minimum version 1.24)
  Go version:       go1.24.3
  Git commit:       45873be
  Built:            Fri May 30 12:07:26 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.27
  GitCommit:        05044ec0a9a75232cad458027ca83437aae3f4da
 runc:
  Version:          1.2.5
  GitCommit:        v1.2.5-0-g59923ef
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Client: Docker Engine - Community
 Version:    28.2.2
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.24.0
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.36.2
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

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