Docker
volume
-vでのマウントとは違う?
コンテナを破棄しても残る、永続
data-only containersがあったがnamed volumesで置き換えられたらしい
データ専用コンテナ
ホストでvolumeを共有するより、dockerコンテナ同士で--volumes-fromしたほうがいいよという話
Dockerのベスト・プラクティス
コンテナ内に複数プロセスを起動しない
ホスト側に複雑な設定をしない
ホスト毎に設定が必要になるのは確かに面倒
Dockerのログのしくみ
コンテナのプロセスのstdout/stderrをDockerがホスト上にjsonとして保存する
docker logで見られる
ホスト上でユーザA (グループB)がいたとき、コンテナ内に同じユーザAが居ても、グループBに属していなければホストでは書き込みできないらしい
なぜDocker内部のプロセスをrootで実行してはいけないのか?
volumeをマウントしているとホスト上でroot権限を持つファイルはdockerコンテナ無いから読めてしまう
volumeをマウントしない場合でもroot以外のユーザで実行するべきなのか
簡単ならそれでいいと思う
コンテナ内で適当にユーザを追加すればいいだけ
code:docker
RUN groupadd -g 999 appuser && \
useradd -r -u 999 -g appuser appuser
USER appuser
nobodyでもよさそう
ホストに書き込みする必要を最低限にする、そいつを外のネットワークから隔離する、ユーザIDやグループIDをそいつだけはしっかりと設定する
ホスト側の設定が面倒なので、
run するときは --service-ports を付けないとdocker-compose.yml
Run command with the service's ports enabled and mapped to the host.