有識者の方には何言ってんだこいつと思われることもあるかもしれませんがご容赦を。
まず今日理解したこと。
- Dockerとは、コンピューターの仮想環境を構築する仕組みの1種である。
- Docker(という仕組み)の環境の一つ一つをコンテナと呼ぶ。
- コンテナには、さまざまな依存関係のあるアプリケーション群を一つにパッケージングしたものである。(例えばWebサーバー、アプリケーションサーバー、データベースを一つにまとめたもの)
- コンテナとは、OSを仮想化するわけではなく、アプリケーション実行環境の仮想化である。(今日の疑問1:アプリケーション空間、ユーザー空間の仮想化とは、まだちゃんと理解できていない。どのレベルでDockerEngineは仮想化するのか)
- コンテナは環境依存しないので、開発環境で作成したアプリケーションをそのままデプロイすればそのまま動く(今日の疑問2:環境依存する部分は本当にないのかIPアドレス、MACアドレスとか。DockerEngineがそれを吸収するのか?あるいは環境情報は別途デプロイする必要があるのか?)
Dockerの利点
- 上記と重複する部分があるが、開発環境と本番環境の差異(CPU、メモリ量、ディスク量などは当然差異がある。しかしそれらはスケーラブルであることを前提にした作りにしておけば良い?)がないはずなので、開発環境のアプリケーションを本番環境にそのままおけば動く(はず)
その他(感想とか)
- コンテナ技術は、Docker以外にもあるが現在はDockerが主流。
- 仮想化技術の進歩は目覚ましい。コンテナ以外にも新しい技術がたくさん生まれては消えていっている。過去に確かSun Microsystemsが夢見ていた、どこでもなんでも同じように動く世界がだんだん実現しようとしてきているのか?
0 件のコメント:
コメントを投稿