🐥

LinuxさんとDockerさんの関係。あとカーネルさん

1 min read

はじめに

くーばねてすをやっつけるためにこれまでにLinuxさんとAWSさんと仲良くさせていただいたが、新たなステージに上がるためについにdockerさんに会いに行くことにした。dockerさんと仲良くなることでコンテナシステムの仕組みの理解とくーばねてすを倒すための調査をする。

概要

■コンテナとカーネル
■ネームスペース
■コントロールグループ

をまとめた(^^)

■コンテナとカーネル

コンテナでは色んなディストリビューション(配布パッケージ)のコンテナを実行することができる。コンテナで作成されるディストリビューション、バージョンに対して対応していないコンテナホストのカーネルでも実行できてしまう、ということだ。
それはなぜなのか。
Linux Standard Base(という規格)で、Linuxの各ディストリビューション間の互換性や相互運用性を良くするようにISO(国際標準化機構)にて国際標準として定められているからだ。
なのでdockerではソースコード(ソフトウェアの設計内容)を実行可能な形式に変換(コンパイル)するときに互換性のあるソースコードに変換され実行される、というかたちになっている。

■ネームスペース

dockerではコンテナを独立して運用するためにLinuxのカーネル技術であるネームスペースが使用される。ネームスペースでは特定のプロセスに対して 他のプロセスから分離するようにしてくれる。
コンテナを独立して運用するためにネームスペースでは次のように管理している。

ネームスペース 意味 役割
pid PID:Process ID プロセスIDを分離する
net NET:Networking ネットワークインターフェースを管理する
ipc IPC:Intr Process Communication プロセス間通信のアクセス管理
mnt MNT:Mount ファイルシステムのマウント管理
uts UTS:Unix Timesharing System カーネルとバージョンの識別子を分離

■コントロールグループ(cgroup)

dockerではCPUやメモリなどの監視や管理を設定するためにLinuxのカーネル技術のcgroupを使用している。CPU/メモリなどのリソースを隔離するための仕組みらしい('_')

https://christina04.hatenablog.com/entry/2020/02/24/170724

まとめ

コンテナ化するために色々考えてるんだなって思った(^_-)-☆

Discussion

ログインするとコメントできます