Ultimamente he trabajado mucho con docker y en el maravilloso recorrido que he tenido con docker se me presento un problema gigante,  inicio el contenedor con su servicio pero por X o Y motivo quiero ingresar al bash y el “docker attach” no funciona porque el docker no lo inicie con /bin/bash

Una solución es abrir el puerto 22 e ingresar por ssh, pero no es la gracia trabajar de esta manera ya que estamos con container. Navegando por la red encontré un comando un poco largo para poder ingresar al bash del container y un compañero de la compañía donde trabajo también me paso uno parecido, pero me pareció algo fastidioso usar un comando largo para ingresar al bash entonces me tome la tarea de crear un script para que me facilite esta tarea, se los mostrare:

clear

##Show container and Id 
echo "runing container"
echo 

docker ps -a | grep Up |  awk ' { print $1,"   " $NF}'



echo 
echo 
## Insert Id or name of container  

echo "Insert id or name of Container to login bash"
read CONTAINER

##LOGIN TO CONTAINER 

ct=$CONTAINER && sudo nsenter --target $(docker inspect --format {{.State.Pid}} $ct) --moun --uts --ipc --net --pid

El proyecto se encuentra en github, le hare algunas mejoras para que sea aun mas automatizado, pero sera mas adelante.

https://github.com/braybaut/LoginDocker

Al correr el script este les mostrara el Id y el nombre de los contenedores que estan corriendo, despues deben escribir el id o el nombre del contenedor al cual quieren ingresar al bash

Ejemplo:

Lo ideal es dejar el script en /usr/local/bin/ para que podamos llamarlo desde cualquier ubicación en nuestra consola.

Eso es todo algo sencillo que realmente nos facilitara la vida.