La instrucción CMD de Dockerfile saldrá del contenedor justo después de ejecutarlo

Quiero configurar alguna configuración cuando se inicia mi contenedor, para esto estoy usando scripts de shell. Pero mi contenedor se cerrará tan pronto como finalicen mis scripts, lo he intentado con el modo -d flag / detached pero nunca se ejecutará en modo detached.

Debajo está mi Dockerfile

FROM ubuntu:14.04

ADD shell.sh /usr/local/bin/shell.sh

RUN chmod 777 /usr/local/bin/shell.sh

CMD /usr/local/bin/shell.sh

A continuación se muestra mi script de shell

#!/bin/bash
echo Hello-docker

Corre sin ninguna bandera

docker run hello-docker

Esto imprimirá 'Hello-docker' en mi consola y saldrá

Ejecutar con banderas -itd

docker run -itd hello-docker

y como debajo de la salida de mi consola, esta vez también saldrá pronto.:(

La diferencia que vi está en la sección de COMANDO cuando ejecuto la sección de comandos de otras imágenes que mostrará "/ bin / bash" y continuará en modo separado.

Y cuando ejecuto mi imagen en el contenedor con el script de shell, la sección COMMAND mostrará "/ bin / sh -c / usr / loca", y Salir.

Quiero ejecutar el contenedor hasta que no lo detenga manualmente.

EDITAR:

Después de agregar la instrucción ENTRYPOINT en Dockerfile, esto no ejecutará mi script de shell :(

FROM ubuntu:14.04

ADD shell.sh /usr/local/bin/shell.sh

RUN chmod 777 /usr/local/bin/shell.sh

CMD /usr/local/bin/shell.sh

ENTRYPOINT /bin/bash

Según la documentación de la ventana acoplableaquí

CMD se anulará al ejecutar el contenedor con argumentos alternativos, por lo que si ejecuto la imagen de Docker con algunos argumentos como se muestra a continuación, no ejecutaré las instrucciones de CMD. :(

sudo docker run -it --entrypoint=/bin/bash <imagename>

Respuestas a la pregunta(4)

Su respuesta a la pregunta