how to ssh docker container

前端 未结 8 1616
抹茶落季
抹茶落季 2021-02-02 06:34

I am running the container hypriot/rpi-busybox-httpd

I am trying to ssh to docker container: but it is giving error :

pi@raspberrypi:~ $         


        
相关标签:
8条回答
  • 2021-02-02 06:40

    You might need to specify the full path to bash, e.g.:

    docker exec -it cc55da85b915 /bin/bash
    

    or /usr/local/bin/bash, or wherever bash is located in that image.

    Hope this helps!

    0 讨论(0)
  • 2021-02-02 06:41

    For Alpine based image, docker exec -ti cc55da85b915 /bin/sh and docker exec -ti cc55da85b915 ls /etc worked. As suggested by 'Esteban Collado'.

    However for other Linux versions I use, docker exec -ti cc55da85b915 bash

    0 讨论(0)
  • 2021-02-02 06:44

    The image you're using seems that it doesn't have the binary /bin/bash installed but it should have /bin/sh

    Try:

    docker exec -it cc55da85b915 sh
    
    0 讨论(0)
  • 2021-02-02 06:44

    This will also relevant for Kubernetes pods.

    For example if you'll try to connect to a pod which doesn't contain the shell you specified:

    kubectl exec -it some-busybox-pod bash
    

    (busybox have sh on it not bash).

    You'll end up with the same error:

    OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown
    command terminated with exit code 126
    
    0 讨论(0)
  • 2021-02-02 06:51

    It could be your image does not have the binary /bin/bash installed (as suggested before), I had the same problem and I was able to enter into the container using /bin/sh

    docker exec -ti cc55da85b915 /bin/sh
    

    Another workaround could be execute directly the commands without get access to any shell.

    docker exec -ti cc55da85b915 ls /etc
    
    0 讨论(0)
  • 2021-02-02 06:56

    You have many different ways to do that, you can attach using docker's attach command.

    $ sudo docker attach cc55da85b915 #by ID
    

    Or you can use docker exec command:

    $ sudo docker exec -i -t cc55da85b915 /bin/bash
    

    If /bin/bash fails, you can use /bin/sh that works in more containers:

    $ sudo docker exec -i -t cc55da85b915 /bin/sh
    
    0 讨论(0)
提交回复
热议问题