A instrução Dockerfile CMD sairá do contêiner logo após executá-lo

Quero definir algumas configurações quando meu contêiner iniciar, por isso estou usando shell scripts. Mas meu contêiner será fechado assim que meus scripts terminarem. Tentei com o modo -d sinalizador / desanexado, mas ele nunca será executado no modo desanexado.

Abaixo está o meu 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

Abaixo está o meu script de shell

#!/bin/bash
echo Hello-docker

Executar sem nenhum sinalizador

docker run hello-docker

Isso imprimirá 'Hello-docker' no meu console e sairá

Executar com sinalizadores -itd

docker run -itd hello-docker

e, como abaixo da saída do console, esse tempo também será encerrado em breve.:(

A diferença que vi está na seção COMMAND quando executo outras imagens. A seção de comando mostrará "/ bin / bash" e continuará no modo desanexado.

E quando eu executo minha imagem no contêiner com a seção COMMAND do script shell, mostrará "/ bin / sh -c / usr / loca" e Sair.

Quero executar o contêiner até não pará-lo manualmente.

EDITAR:

Após adicionar a instrução ENTRYPOINT no Dockerfile, isso não executará meu 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

Conforme a documentação do dockeraqui

O CMD será substituído ao executar o contêiner com argumentos alternativos; portanto, se eu executar a imagem do Docker com alguns argumentos, conforme abaixo, não executarei as instruções do CMD. :(

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

questionAnswers(4)

yourAnswerToTheQuestion