Closed
Description
Description
When executing cli.setuphijackconn, call cli.dialer () after executing "dialer := cli.dialer ()",
TLSClientConfig is not null when Scheme =" HTTP ", causing an error.
The error message is: OCI runtime exec failed: exec failed: unable to start container process: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
Fix for:
// Dialer returns a dialer for a raw stream connection, with HTTP/1.1 header, that can be used for proxying the daemon connection.
// Used by `docker dial-stdio` (docker/cli#889).
func (cli *Client) Dialer() func(context.Context) (net.Conn, error) {
return func(ctx context.Context) (net.Conn, error) {
if transport, ok := cli.client.Transport.(*http.Transport); ok {
**if cli.scheme == "http"{
transport.TLSClientConfig = nil
}**
if transport.DialContext != nil && transport.TLSClientConfig == nil {
return transport.DialContext(ctx, cli.proto, cli.addr)
}
}
return fallbackDial(cli.proto, cli.addr, resolveTLSConfig(cli.client.Transport))
}
}
Reproduce
In the development of project portainer, new resource manager function
https://github.com/yunnet/portainer.git
for:
https://github.com/yunnet/portainer/tree/develop/api/http/handler/endpoints/endpoint_explorer.go
call ContainerExecAttach
Expected behavior
No response
docker version
Client: Docker Engine - Community
Version: 20.10.12
API version: 1.41
Go version: go1.16.12
Git commit: e91ed57
Built: Mon Dec 13 11:45:33 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.12)
Go version: go1.16.12
Git commit: 459d0df
Built: Mon Dec 13 11:43:42 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
use docker sdks
github.com/docker/docker v20.10.16+incompatible
docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Docker Buildx (Docker Inc., v0.7.1-docker)
Server:
Containers: 9
Running: 9
Paused: 0
Stopped: 0
Images: 61
Server Version: 20.10.12
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
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: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
Default Runtime: runc
Init Binary: docker-init
containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc version: v1.0.2-0-g52b36a2
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 5.13.0-41-generic
Operating System: Ubuntu 20.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 16
Total Memory: 30.97GiB
Name: k8s-slave2
ID: HGZT:LYHY:HSPQ:PEDC:IVWV:RKQO:64NS:LM47:V4DV:52VR:2DRH:3SK7
Docker Root Dir: /data/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
harbor.saas.xxxx.com
127.0.0.0/8
Registry Mirrors:
https://xxxx.mirror.aliyuncs.com/
Live Restore Enabled: false
Additional Info
No response