コンテナを永続化させる方法

コンテナは起動後、実行しているプロセスがなかったら停止してしまいます。

そのため、例えば apache を起動するコンテナだと、
DokerFile で、

と指定したり、スクリプト中で実行する場合は、

として、 entrypoint.sh 中で、

としたりします。
(apache を FOREGROUND で起動することで、プロセスが落ちないようにしている、と思う。)

上記のように、FOREGROUND で起動する事ができない場合は、tail -f /dev/null を使うといいです。

例えば、 entrypoint.sh で下記のように最後に書きます。

こうすることで、entrypoint.sh を実行するプロセスが落ちないので、コンテナは停止せずに起動中のままになります。

もしくは、 tty オプションを使います。
docker-compose だと、下記のように tty: true と指定することで有効にします。

これは、 docker run コマンドの t オプションに相当し、docker コマンドでは下記のように実行することで、 tty が有効になります。

-it についてくわしくは こちら

tty を指定するほうが良いのか、 tail -f /dev/null を指定するほうが良いのか、どちらでも良いように思いますが、 tail -f /dev/null だと、実行時のオプションに関わらず、プロセスが落ちないようにすることができます。