Software Design 2021年12月号

お値段据え置きで仕事猫ステッカー付のお特号。使い道は無い。

しくみから理解するDocker

“しくみから"といっても「DockerはUFSを使ってレイヤーを単一のファイルシステムに見せているよ」ぐらいの話で、滅茶苦茶低レイヤーに突っ込んだ話は無かった。なので前半部分では新しい知見を得られなかったが、短くまとまっているので振り返って読む分には使いやすい。

  • Dockerはnamespace,cgroup,capability等のLinuxカーネル機能を利用する
    • namespaceにより、PID名前空間やMount名前空間を隔離する
    • cgroupはCPUやメモリのリソース制限に用いられる?
    • capabilityによりコンテナの権限を管理する。コンテナの持つ権限はdocker run時に変更可能
    • UFS(Union File System)のバックエンドとしては、現在はoverlay2fsドライバが標準
  • 一般ユーザーがDockerを利用する場合
    • dockerグループにユーザーを追加するとdockerコマンドを叩けるようになるが、/var/run/docker.sockに対するroot権限を同時に持たせてしまう
    • newuidmapnewgidmapが使えるならRootlessモードが使える

一方で後半は安全なDockerの運用をテーマにしている。普段意識しない部分なので、新しく知れた内容も多く有意義だった。

  • コンテナイメージのセキュリティについて
    • Trivyによるイメージスキャン、Dockerfileスキャンにより、イメージに含まれるパッケージに脆弱性が無いかをチェックできる
      • DockerfileによるスキャンはRegoというポリシー言語でルールを定義できる
      • 検知結果の出力はSARIFフォーマット
    • 秘密情報の管理について
      • Docker Buildkitによりクレデンシャルを含むファイルをイメージに残さずマウントできる
    • イメージレジストリのセキュリティについて
      • Docker Content Trustにより、イメージに対してNotaryで署名できるらしい
  • CIS Docker Benchmarkという安全なコンテナ運用におけるベストプラクティス集がある

OSSとの上手な付き合い方

企業での運用目線なので今はあまり関係ない感じ。ライセンス周りの解説をしてる第3章だけ読んだ。

  • OSSライセンスに含まれるポイント
    • OSSの複写や改変が自由であること
    • 複写や改変の際に配布者がしなければならないこと
    • OSSの利用に際し開発者が一切責任を追わないこと
  • OSSは大別して寛容(Permissive)型と互恵(Reciprocal)型の2つがある
    • 寛容型(MIT,BSD等)はライセンスと著作権表記をすればOKなものが多い
    • 互恵型(GPL等)はソースコードの開示が必要になる
  • OSSを利用するときは含まれるOSSのライセンスを網羅的に把握し、何をしなければならないか理解する
    • FOSSologyはソースコードをスキャンしライセンスをチェックする

ステッカー
ステッカー