Dockerは仮想スイッチと仮想イメージの両方を持つ
下記の記事で、Dockerは仮想スイッチと仮想イメージの両方を持つと理解した。
自分の気づきをメモ。
間違っていたら後で直す。
【参考】
【連載】世界一わかりみが深いコンテナ & Docker入門 ? その5:Dockerのネットワークってどうなってるの? ? | SIOS Tech. Lab
僕は、DockerとVMの違いが分かってなかった。
VMWareのソフトでVMの仮想NICをいじったり、VMSphereで複数のVMを再起動する、とかしていたけれど、何か腑に落ちなかった。
なるほど、dockerでは、CentOSの2つのVMを構築するだけでなく、仮想スイッチまで作ってくれるわけだ。
# docker run -it -d --name test01 centos:centos7
# docker run -it -d --name test02 centos:centos7
この仮想スイッチは、L3スイッチに似ている。
IPアドレスを持つし、デフォルトゲートウェイも持つ。
そうでなければ、VMから外部ネットワークへ通信できない。
では、なぜDockerは仮想スイッチが必要なのか?
理由は、おそらく、仮想スイッチを経由して、VMや他のNW機器とパケット転送やイーサネットフレーム転送を制御する必要があるから。
イメージ的には、Dockerの仮想スイッチに、PCとコンソールケーブルで接続して、PCから仮想スイッチにログインして、VLANやSTP、OSPFなどを設定できるようにしたいのだろう。
つまり、Dockerの仮想スイッチは、ネットワーク制御の入り口に当たるわけだ。
また、Linuxをいじっている時に、iptables をよくわからずに操作していたが、NAT機能のことだったのね。
すると、Linuxそのものをルータとして機能させていたわけだ。
Dockerが仮想スイッチを操作できるならば、Dockerを動かすOSそのものをNAT機能を持つルータにしてしまえば、Webシステムの冗長化やブルーグリーン・デプロイメントも楽に制御できるはず。
こういう技術がない頃は、手作業でロードバランサーの向き先を変えて、2つのWebサーバーに順に本番モジュールをリリースしていたが、いつも冷や汗をかいていたのを思い出した。
Dockerで仮想スイッチやVMも一括設定できるなら、どの環境にも簡単に移植できるようになるはず。
さらには、クラウドの種類、AWS、Azureに依存しないように構築できるはず。
Infrastructure as codeは、移植性を透明的にする方向に進化しているわけだ。
| 固定リンク
「Agile」カテゴリの記事
- プロセス設計はどの範囲を指すのか?~プロマネの仕事はテーラリングにある(2022.06.19)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 超高速開発でアジャイル開発を実現する話に違和感がある(2022.05.06)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
「ネットワーク・クラウド」カテゴリの記事
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
- 東大の講義内容が「AWSではじめるクラウド開発入門」本で出版されたらしい(2021.11.07)
- DockerとVirtualBoxの違い(2021.11.03)
- AWSサービスとSW品質特性のマッピングはどうなるか(2021.10.30)
- CISOは経営がわかる情報セキュリティ最高責任者である(2021.08.01)
コメント