DockerコンテナのLinuxベースイメージをDocker以外の環境で使用できますか?

DockerコンテナのLinuxベースイメージをDocker以外の環境で使用できますか?

コンテナ共有マシンのOSシステムカーネル

https://www.docker.com/resources/what-c​​ontainer/

コンテナがマシンのオペレーティングシステムカーネルを共有している場合、DebianやAlpineなどのLinux用Dockerの基本イメージにカーネルが含まれていないのは本当ですか?できるrootfs ビルドこれらの基本イメージで使用されているコンテンツはDockerの外部で使用できますか?

Alpine LinuxのDockerfileは例を示しています。

FROM scratch
ADD alpine-minirootfs-3.14.6-x86_64.tar.gz /
CMD ["/bin/sh"]

これらの Linux バージョンは、Docker カーネルについて特定の事項を想定していますか?

ベストアンサー1

DebianやAlpineなどのLinuxのDockerの基本イメージにカーネルが含まれていないのは本当ですか?

これは一般的に本当です。アルパインへの言及は、以下に基づいていることを示しています。ミニルートファイルシステムカーネルが含まれていません。

これらの基本イメージで使用されているrootfsビルドはDockerの外部で使用できますか?

明らかに、他のコンテナ環境で直接使用できます。ポッドキャスト。付属のファイルシステムは他の場所でも使用できます。

質問に示すように、Alpineを例にとると、Dockerイメージはファイルの内容にすぎませんalpine-minirootfs-<version>.tar.gz。ファイルをダウンロードした場合ここから開けばすぐにできるchroot一時環境として使用するには、このディレクトリに変更してください。

wget https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-minirootfs-3.15.4-x86_64.tar.gz
mkdir foo
cd foo
tar -xf alpine-minirootfs-3.15.4-x86_64.tar.gz
chroot . /bin/sh

chrootdockerによって実行されるネットワーク分離など、すべての分離が確立されるわけではありません。

Docker自体はコンテンツをレイヤーにパッケージ化するため、コンテナー環境の外部(dockerやpodmanなど)でdockerイメージを使用するには、レイヤーをディレクトリツリーに手動で収集する必要があります。

おすすめ記事