#なぜこうもDockerに振り回されるのか
弊社で定期的に行われています日帰り開発合宿(デブキャン)に久しぶりに参加しました。
最近は音楽活動(下手の横好き)が忙しく、休日の開発活動は本当に久しぶりです。
Dockerを使ってDjango環境を構築しようかと考えて奮闘しましたが、Dockerfileと
docker-compose.ymlの違いに混乱したり、無理にPyenvも取り入れようとしたりで
散々な結果です。
Dockerというものを理解しているようで、実は浅くしか理解していなかった
自分に猛省しつつ、最終的はEC2環境に直にDjango環境を構築する始末。
殴られもせずに一人前になった奴がどこにいるものか!(ブライト・ノア)
ここからはDockerについて再勉強した自分の備忘録のようなものをつらつらと書いていきます。
##Dockerコンテナ(コンテナ) ≠ VirtualMachine(VM)
当たり前ですが、DockerはVirtualMachineとは原理や思想が異なりますし、
使用されている技術も大きく異なります。
コンテナはホストOSのカーネルを始めメモリやストレージも共有するのに比べ、
VMはそれぞれ別に(仮想的に)専有するイメージです。
コンテナはシェアハウスでキッチン・バス・トイレ共同、VMはアパートの一室で
キッチン・バス・トイレは個別みたいな感じですね。
ザクとは違うのだよ、ザクとは!(ランバ・ラル)
##コンテナは別のコンテナと簡単につながる
コンテナ双方のネットワークはLinux系OSのカーネルが持つNameSpaceや仮想
NIC、仮想アダプタ(ルーター)の機能で実現することができます。
仮想という言葉がポイントで自由に追加・変更・削除できる点が非常にフレキシ
ブルで素晴らしいです。
コンテナ間の通信はDockerのもつ機能だと勘違いしておりました(汗)。
坊やだからさ(シャア・アズナブル)
##コンテナは管理が楽
不要なコンテナは停止する、必要なコンテナはgitからイメージをcloneして起動する、なんて便利なんでしょう。
先のNameSpaceのおかげで他の領域を汚染しない作りも非常にありがたいです。
こんなに嬉しいことはない(アムロ・レイ)
##今回の反省
結局大半の時間をDockerの勉強に費やしたデブキャンとなりました。
俺だって前の俺とは違うんだ 引かねえぞ(カイ・シデン)
次回は思いのままにDockerを使いこなしてDjangoの環境を構築するゼッ!
##謝辞
大変勉強になりました。