
環境は変わっていないくせに、自分がやりたいことがどんどん実現していく様はさながら魔法である。Githubの自己紹介ページに掲げた理念においては、思考は文章であると述べている。新しい知識が脳内に増えていくが、どこかでそれを書き留めておかなくてはいけない。今日はDockerについて少しだけまとめる。
Dockerとはなにか。
Docker入門(第一回)~Dockerとは何か、何が良いのか~ | さくらのナレッジ
コンテナ型の仮想環境を作成、配布、実行するためのプラットフォームです。
なるほど。開発環境をローカルではなく仮想環境上に構築し、それを配布・実行するための仕組みということか。
Dockerのコンテナと比較されるのが仮想マシンという概念である。仮想マシンはホストマシン上にHypervisorという司令塔を入れて、複数のゲストOSらに指示を出して、アプリ等を動かしていた。ゲストOSは独自のカーネルを持つため、ホストとは別のOSが1つのマシン上で動いている状態になる。しかしこの構成ではゲストOSの分サイズが大きく、処理も遅くなってしまうという難点があった。
一方、Docker コンテナは、独自のカーネルを持たない。カーネルはホストOSのものを共有して利用する。そのためサイズが小さく処理が早いというメリットがある。
なぜコンテナがでてきたか
ChatGPTにききながらすこしまとめた。なぜ最初からコンテナが出てこなかったのか。技術的問題と社会のニーズによるところが多かったようだ。コンテナを実装するにはカーネルのなかに隔離技術がないとダメだった。名前空間やリソースの制御が必要だった。社会的にもカーネルの共有は危険とかリスクが高いとかそんな懸念があった。
技術は一足とびではない
調べていくと一つの技術がポンと出たわけではなく、社会事情や技術革新とかがあって新しいものができてきたのだなと知った。これはハードウェアと一緒か。紡織から自動車業が発展したように。私もがんばろう。