Dockerの裏側を知るために、Goで最小限のコンテナランタイムを作ってみた
https://zenn.dev/7csc/articles/6bca7dad3b0a84
を読んで・・・
runc と go-containerregistry を使っている。
runc と go-containerregistry はそれぞれ個別のコマンドも存在するので、
バラバラにコマンドの動作とソースコードを見ると良さそう。
go-containerregistry
https://github.com/google/go-containerregistry
https://sreake.com/blog/image-creation-and-execution-with-go-containerregistry/
コンテナイメージを作ったりアップロードしたりダウンロードしたり
以下の手順でイメージから rootfs を作る
crane export ubuntu:latest ubuntu-rootfs.tar
mkdir -p my-container/rootfs
tar -xf ubuntu-rootfs.tar -C my-container/rootfs
runc
https://github.com/opencontainers/runc
https://zenn.dev/hidenori3/articles/07f3231cf3dee9
Docker Image を展開した rootfs のディレクトリを指定して実行する
"runc spec" で作った config.js を修正して実行
自分も、これらのライブラリ使って、自分用に、実行してみるだけのコマンドとか作れないかな。
この記事へのコメント