Reputation: 38601
When I am login docker kubernetes dashboard using this command:
docker exec -it ecd3ff5051df /bin/bash
Throw this error:
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown
I am searching the internet and tell me the alpline default using sh, then I am trying to login like this:
docker exec -it ecd3ff5051df /bin/sh
throw this error:
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown
where is the problem? Thank you.this is my docker info:
[root@log001 ~]# docker inspect 47c0c3b512cb
[
{
"Id": "47c0c3b512cbc15e7db1753d1d255346532e5f94b5b013da70074cffd6ea70ff",
"Created": "2019-09-22T10:40:59.197328264Z",
"Path": "/dashboard",
"Args": [
"--insecure-bind-address=0.0.0.0",
"--bind-address=0.0.0.0",
"--auto-generate-certificates"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 22632,
"ExitCode": 0,
"Error": "",
"StartedAt": "2019-09-22T10:40:59.680933289Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:f9aed6605b814b69e92dece6a50ed1e4e730144eb1cc971389dde9cb3820d124",
"ResolvConfPath": "/var/lib/docker/containers/ecd3ff5051df0ed2a8b8bc5e2145dfcbf630d834cdb35572230d1a5cb4d60852/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/ecd3ff5051df0ed2a8b8bc5e2145dfcbf630d834cdb35572230d1a5cb4d60852/hostname",
"HostsPath": "/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/etc-hosts",
"LogPath": "/var/lib/docker/containers/47c0c3b512cbc15e7db1753d1d255346532e5f94b5b013da70074cffd6ea70ff/47c0c3b512cbc15e7db1753d1d255346532e5f94b5b013da70074cffd6ea70ff-json.log",
"Name": "/k8s_kubernetes-dashboard_kubernetes-dashboard-74d7cc788-mk9c7_kube-system_9b8ba20d-f379-4b83-8d85-5901f26308c7_2",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": [
"/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/volumes/kubernetes.io~secret/kubernetes-dashboard-certs:/certs:ro",
"/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/volumes/kubernetes.io~empty-dir/tmp-volume:/tmp",
"/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/volumes/kubernetes.io~secret/kubernetes-dashboard-token-pmxpf:/var/run/secrets/kubernetes.io/serviceaccount:ro",
"/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/etc-hosts:/etc/hosts",
"/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/containers/kubernetes-dashboard/50339ad7:/dev/termination-log"
],
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "container:ecd3ff5051df0ed2a8b8bc5e2145dfcbf630d834cdb35572230d1a5cb4d60852",
"PortBindings": null,
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"Dns": null,
"DnsOptions": null,
"DnsSearch": null,
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "container:ecd3ff5051df0ed2a8b8bc5e2145dfcbf630d834cdb35572230d1a5cb4d60852",
"Cgroup": "",
"Links": null,
"OomScoreAdj": -998,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
"Isolation": "",
"CpuShares": 51,
"Memory": 314572800,
"NanoCpus": 0,
"CgroupParent": "/kubepods/burstable/pod9b8ba20d-f379-4b83-8d85-5901f26308c7",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 100000,
"CpuQuota": 10000,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DiskQuota": 0,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": 314572800,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": 0,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"ReadonlyPaths": [
"/proc/asound",
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/9f0d685998ea4b8fce36e79ddb90f33b115d4d12468845a08472d350f29d8c52-init/diff:/var/lib/docker/overlay2/32329fe5a56eea9514b732989f53864544c8bf24c97fb53ace9cbc82784e67d2/diff",
"MergedDir": "/var/lib/docker/overlay2/9f0d685998ea4b8fce36e79ddb90f33b115d4d12468845a08472d350f29d8c52/merged",
"UpperDir": "/var/lib/docker/overlay2/9f0d685998ea4b8fce36e79ddb90f33b115d4d12468845a08472d350f29d8c52/diff",
"WorkDir": "/var/lib/docker/overlay2/9f0d685998ea4b8fce36e79ddb90f33b115d4d12468845a08472d350f29d8c52/work"
},
"Name": "overlay2"
},
"Mounts": [
{
"Type": "bind",
"Source": "/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/volumes/kubernetes.io~empty-dir/tmp-volume",
"Destination": "/tmp",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/volumes/kubernetes.io~secret/kubernetes-dashboard-token-pmxpf",
"Destination": "/var/run/secrets/kubernetes.io/serviceaccount",
"Mode": "ro",
"RW": false,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/etc-hosts",
"Destination": "/etc/hosts",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/containers/kubernetes-dashboard/50339ad7",
"Destination": "/dev/termination-log",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/opt/k8s/k8s/kubelet/pods/9b8ba20d-f379-4b83-8d85-5901f26308c7/volumes/kubernetes.io~secret/kubernetes-dashboard-certs",
"Destination": "/certs",
"Mode": "ro",
"RW": false,
"Propagation": "rprivate"
}
],
"Config": {
"Hostname": "kubernetes-dashboard-74d7cc788-mk9c7",
"Domainname": "",
"User": "0",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8443/tcp": {},
"9090/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"KUBERNETES_PORT=tcp://10.254.0.1:443",
"KUBE_DNS_SERVICE_PORT_DNS_TCP=53",
"KUBE_DNS_PORT_53_UDP_PORT=53",
"KUBERNETES_DASHBOARD_PORT_443_TCP_PROTO=tcp",
"KUBE_DNS_SERVICE_PORT_DNS=53",
"KUBE_DNS_SERVICE_PORT_METRICS=9153",
"KUBE_DNS_PORT_53_UDP=udp://10.254.0.2:53",
"KUBE_DNS_PORT_53_UDP_ADDR=10.254.0.2",
"KUBERNETES_SERVICE_PORT_HTTPS=443",
"KUBERNETES_PORT_443_TCP_PORT=443",
"KUBERNETES_DASHBOARD_SERVICE_PORT=443",
"KUBERNETES_DASHBOARD_PORT=tcp://10.254.75.193:443",
"KUBERNETES_DASHBOARD_PORT_443_TCP=tcp://10.254.75.193:443",
"KUBE_DNS_SERVICE_HOST=10.254.0.2",
"KUBE_DNS_PORT_53_TCP_PORT=53",
"KUBE_DNS_PORT_9153_TCP=tcp://10.254.0.2:9153",
"KUBERNETES_PORT_443_TCP=tcp://10.254.0.1:443",
"KUBERNETES_PORT_443_TCP_ADDR=10.254.0.1",
"KUBERNETES_DASHBOARD_SERVICE_HOST=10.254.75.193",
"KUBE_DNS_PORT_9153_TCP_ADDR=10.254.0.2",
"KUBERNETES_DASHBOARD_PORT_443_TCP_ADDR=10.254.75.193",
"KUBE_DNS_SERVICE_PORT=53",
"KUBE_DNS_PORT_9153_TCP_PORT=9153",
"KUBE_DNS_PORT_53_UDP_PROTO=udp",
"KUBE_DNS_PORT_53_TCP_PROTO=tcp",
"KUBE_DNS_PORT_53_TCP=tcp://10.254.0.2:53",
"KUBERNETES_SERVICE_PORT=443",
"KUBERNETES_PORT_443_TCP_PROTO=tcp",
"KUBE_DNS_PORT=udp://10.254.0.2:53",
"KUBERNETES_SERVICE_HOST=10.254.0.1",
"KUBE_DNS_PORT_9153_TCP_PROTO=tcp",
"KUBERNETES_DASHBOARD_PORT_443_TCP_PORT=443",
"KUBE_DNS_PORT_53_TCP_ADDR=10.254.0.2",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"--auto-generate-certificates"
],
"Healthcheck": {
"Test": [
"NONE"
]
},
"Image": "sha256:f9aed6605b814b69e92dece6a50ed1e4e730144eb1cc971389dde9cb3820d124",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/dashboard",
"--insecure-bind-address=0.0.0.0",
"--bind-address=0.0.0.0"
],
"OnBuild": null,
"Labels": {
"annotation.io.kubernetes.container.hash": "b11195e",
"annotation.io.kubernetes.container.ports": "[{\"containerPort\":8443,\"protocol\":\"TCP\"}]",
"annotation.io.kubernetes.container.restartCount": "2",
"annotation.io.kubernetes.container.terminationMessagePath": "/dev/termination-log",
"annotation.io.kubernetes.container.terminationMessagePolicy": "File",
"annotation.io.kubernetes.pod.terminationGracePeriod": "30",
"io.kubernetes.container.logpath": "/var/log/pods/kube-system_kubernetes-dashboard-74d7cc788-mk9c7_9b8ba20d-f379-4b83-8d85-5901f26308c7/kubernetes-dashboard/2.log",
"io.kubernetes.container.name": "kubernetes-dashboard",
"io.kubernetes.docker.type": "container",
"io.kubernetes.pod.name": "kubernetes-dashboard-74d7cc788-mk9c7",
"io.kubernetes.pod.namespace": "kube-system",
"io.kubernetes.pod.uid": "9b8ba20d-f379-4b83-8d85-5901f26308c7",
"io.kubernetes.sandbox.id": "ecd3ff5051df0ed2a8b8bc5e2145dfcbf630d834cdb35572230d1a5cb4d60852",
"maintainer": "Piotr Bryk <[email protected]>"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {}
}
}
]
Upvotes: 1
Views: 8597
Reputation: 158657
You can’t docker exec
or kubectl exec
into this container at all, because it doesn’t have any interactive tools you could run.
There’s no requirement that a Docker image contain a shell or any other debugging tools, and particularly in the case of Go-based binaries it’s not that uncommon to have an extremely minimal image that only contains the application and absolutely nothing else.
If you look at the dashboard Dockerfile you’ll see that it’s structured as
FROM scratch
ADD . /
There’s absolutely nothing at all in the scratch
base image — no shell, no libraries, nothing. So the only things in the official dashboard image are the things that come out of the Kubernetes source tree; there isn’t a /bin/sh
or /bin/bash
(or even a /bin
directory).
Upvotes: 4