docker image を定義する際に、サーバーのユーザーは分けるべき?
たとえば、サーバープログラムを、マシンにインストールする場合には、基本的に user を分けると思います。 mysql をインストールしているならば、そのデータディレクトリは mysql:mysql の owner であるようにすると思っています。
これは、セキュリティであったり、運用的に、サーバーが触るファイルをきっちりと分割することで、もろもろのトラブルを回避できるからやるのだと理解しています。
docker でとあるサーバーのイメージを自分で作る場合を考えます。この場合でもそのサーバー専用に adduser
して、プログラム自体の実行はそのユーザーでやるし、また対応するデータディレクトリもその新しく定義したユーザーが所有者として動作するように設定を行うべきなのでしょうか?
というのも、 docker container はその仕組み上、メインで動くプロセスはただそのサーバープログラムのみになる、と考えられます。ただそのプログラムのみが動くのであるならば、わざわざユーザーを分離するような設定は行うメリットはあるのだろうか、とふと疑問に思ったので質問しています。