Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dockerの裏側を攻める

Avatar for SuperHotDog SuperHotDog
September 09, 2025
1

 Dockerの裏側を攻める

Avatar for SuperHotDog

SuperHotDog

September 09, 2025
Tweet

Transcript

  1. 今日のお題: Dockerを深く学ぼう 経緯: Job huntingで海外のOS Software Engineerを申し込もうとしたところOSについ ての経験を求められ, 普段の研究以外に仮想化技術のアピールするかってことで, Dockerそのものをいじっていた,

    調べていた時の記録をLTにしようと思った 毎度のことで, 間違ってたらすまん, あと可搬性とかオーケストレーションとかみたいなベ ストプラクティスの話はしないです 参考資料: LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術 工学基礎シリーズ オペレーティングシステム Binary Hacks Rebooted ―低レイヤの世界を探検するテクニック89選 Docker実践ガイド 第3版
  2. ・Linux NamespaceというLinuxの機能 ・プロセスの名前空間を分離する ・どういうことかというと, プロセスから見えるProcess ID, Network, Mount Pointなどを 隔離する

    ・話していると無限に時間が使えちゃうのでコマンドを実行してさっと見せる Container仮想化の構成要素: Namespace
  3. Container仮想化の構成要素: Namespace 例えば, PID Namespaceを分離させてみる。unshare –fork –pid –mount-procで新し い/procを見てみると...(unshareについては大体こちら) なんと,

    あれだけたくさんあったProcess IDが2つに減ってしまった‼ →Docker container内部ではDocker外部のHostのPIDが見えないのはこういうこと 他にもNetworkなどは同じようにLinux Namespaceで分離する
  4. Container仮想化の構成要素: chroot ・Containerの中身は全く別のシステムのファイルシ ステムが見える ・実はこれはHost fileの一部を隔離したものを chrootでrootの位置を変更している ・Linux distributionはkernelは共通でpackage管 理システムやinit

    systemなどが違うという違いがあ るので, distributionのfile構成をこぴってくれば良い ・ここまでのunshare + chrootで簡単なcontainer 構成は作れる 工学基礎シリーズ オペレーティングシステム