「本当に理解していれば、誰にでもわかるように説明できる」
Docker について自分が本当に理解できているのか?
それを確認するために「Dockerっておいしいの?」な少年にも概要を説明できる説明を考えていました。
表題通りたどり着いたのが「遊戯王カード」です!!
前提
僕の遊戯王カードの理解は20年前くらいで止まっています。「サンダーボルト」や「昼夜の大火事」を3枚デッキに入れてたけれど、どうやら「禁止カード」?なるものが出てきたんですね~、程度の知識なので細かい部分は気にしないでください。
また、説明する範囲は「Docker」関連のみです。(k8sなどオーケストレーション含まない)
より突っ込んだ内容は今後「青年向けver.」とか考えていきたいです。。
とりあえず結論となる図
各ワードの対比 "遊戯王カードのワード" → "Docker 関連のワード"
遊戯王カード | Docker 置き換え |
---|---|
カード | Docker Image |
デッキ | Docker Hub (repository) |
ドロー | docker pull コマンド |
手札 | ローカルに pull した Image |
召喚 | Image からコンテナを起動 |
フィールド | 起動しているコンテナたちがいる場所 ( docker ps ) |
墓地 | 停止したコンテナたちがいる場所 ( docker ps -a ) |
"カード" → " Docker Image "
モンスターや魔法カードをデュエルで使うにはカードを手に入れなければなりません。
コンテナを起動(召喚)するにも Docker Image が必要になります。
"デッキ" → "Dokcer Hub (repository)"
自分が持っているカードを山積みにしたデッキはドローして手札に加えなければ使えません。
Docker Image もリモートの保存場所から直接起動させることは基本的にできません。
"ドロー" → "docker pull コマンド"
真のデュエリストは狙ったカードをデッキからドローできるらしいですね。
使いたいコンテナを起動するため、リモートからローカルへドローしましょう。こちらは誰でもv" docker pull " で狙って引けます。
"手札" → "ローカルに pull したイメージ"
起死回生のカードをドローできました!思わず顔がにやけます。
" docker images " コマンドで起動できるImage(カード)を確認します。
"召喚" → "Image からコンテナを起動"
いよいよ召喚です。アニメではカードを場に出すと、ホログラムでモンスターが飛び出してきますね。
" docker run " コマンドで起動(召喚)してやりましょう。
"フィールド" → "起動中のコンテナがいる場所"
場に出したカードは破壊されない限り、フィールドに居座り続けます。
起動しているコンテナは " docker ps " で確認しましょう。ここに表示されている限りは活躍してくれます。
"墓地" → "停止したコンテナが送られる場所"
相手にカードを破壊されました。なにしてくれてんねん。。墓地へ送りましょう。
" docker kill " でコンテナを kill して墓地に送ります。 " docker ps -a " オプションで確認できるこのコンテナたちは、もちろん死者蘇生で再び場に出すことも可能です。
他にも無理やりだけど考えてみたもの
"融合" → " docker-compose.yml "
特定のカードを組み合わせるとより強力なカードに!
" docker-compose up " コマンドで融合モンスター召喚!
"オリジナルカード" → "Dockerfile の編集"
「僕の考えた最強のカード」を実際に作ってしまおう!名前を決めて、効果を決めて、ビジュアルを決めて、、
" Dockerfile " に自分の好みの環境を書き込んで、 build すれば完成。でもちゃんと規格に沿ったものじゃないとだめだよ。
今度は姪に Docker の素晴らしさを教えたい..
女の子は何が好きなんだ?