docker exec command not executing in sh file

When running below command in command line(terminal) this gets executed fine:

$sudo docker exec -it 5570dc09b58 bash

But same results with :

  • Using pm2 Inside of an Auto-Scaling Environment
  • Can't install scipy
  • Kafka - Docker - Error when sending message from Host to Container (Batch Expired)
  • Make pdb work with docker
  • Docker created with docker-compose not visible from outside server
  • Docker compose - build order, database before the app
  • FATA[0000] cannot enable tty mode on non tty input

    Error when running in a shell script file.

  • Docker containers: curl between containers not working
  • How to deploy node app to docker using maven
  • Kubernetes deploying container in master
  • Uploading/Pushing data to Google Cloud Volume
  • Why do node_modules keep disappearing from docker after build?
  • Is it possible to run kubernetes as a docker container?
  • 2 Solutions collect form web for “docker exec command not executing in sh file”

    You are not running docker in a terminal, so you should remove -t from -it:

    sudo docker exec -i 5570dc09b58 bash
    

    See a more detailed answer here.

    Scripts may be forced to run in interactive mode with the -i option or with a #!/bin/bash -i header.

    So adding shebang to the script with -i option should work:

    #!/bin/bash -i
    
    docker exec -it ed3d9e46b8ee date
    

    Run the script as usual:

    chmod +x run.sh
    sudo ./run.sh 
    

    Output:

    Thu Apr  2 14:06:00 UTC 2015
    
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.