LoginSignup
7
3

More than 3 years have passed since last update.

Dockerって?プレステに例えて完全理解!

Posted at

Dockerについて調べても調べても「・・・・で?何?」となってた私が
Qiitaにこうやって綴るくらい感動した例え話です.(笑)
*ちなみにプレステはやったことも触ったこともないですが,そんな私でも分かったので安心してください!

結論

プレステ本体->docker
ゲームカセット->image
ゲームカセットを挿しゲームができる状態のプレステ本体->コンテナ
ゲームカセットが並んでる場所->docker hub

例)プレステ(プレステ本体)でマリカー(ゲームカセット)をする <-> docker(docker)でMYSQL(image)を使う

よしマリカーをしよう!となった時,当たり前ですがプレステ本体だけではマリカー出来ないですよね.
同様にマリカーのゲームカセットだけでも動かないですよね.
あくまでプレステ本体は,ゲームカセットが動く環境を持っている機械です.
Dockerも同じでMYSQLというイメージが動くための環境でしかないです.
プレステとdockerは目に見える実態物かそうでないかの大きな違いはありますが,役目としては同じです.

マリカーのカセットをプレステ本体にセットしてようやくゲームができます.
これがdockerの世界では,コンテナといいます.
DockerにMYSQLをセットすることでMYSQLがつかえるようになります.
その状態をコンテナと言います.

MYSQLの他にもPHPを使いたい!とかなれば,docker hubに探しにいきましょう!
他のゲームカセットがほしい!と思った時,おもちゃ屋さんに行ってゲームカセットが羅列している場所に行きますよね.
この”ゲームカセットが羅列している場所”,つまり”imageが集まっている場所”がdocker hubです.

おまけ1_データの保存

プレステでゲームしたことがある方はよくわかると思うのですが,
プレステ本体にもゲームカセットにも保存機能ってないんですよね(初期のものだけかな?).
でもステージ0からステージ4まで進んだのにプレステの電源を切って次の日起動したら,保存されてなくてステージ0からのスタート!とか嫌ですよね笑
だからステージ4まで進んでます,という情報を,”USBみたいなメモリ”をプレステに差し込んで,そのメモリに保存してあげるんです.
Dockerも同じで,起動している間は情報の記憶を持ってますが,起動を切るとデータが保存されません.
なのでデータを保存してくれるものを外付けしてあげる必要があるんです.

じゃあ,プレステだったら”USBみたいなメモリ”だけど,dockerで対応するものは?となりますが,
ここに関しては使うimageによって違うので例えられないです・・・笑

おまけ2_docker-composeとは違う?

違います!
正確には使い方が違う,ですかね.
かるーく説明すると,
dockerの場合,使いたいimageを一個ずつセットしないといけないですが,
docker-composeは,docker-compose.ymlというファイルに使いたいimageの情報をバーっと複数記述してあげるだけで一気にセットすることが可能です.

本記事の本題である例え話でいくと,仕組みはdockerと同じと思っていいと思います!(私はそう思ってる笑)

さいごに

そんな感じで
Dockerって難しい!正体が摘めない!と毛嫌いしてた私ですが,
この話をきいてdockerってそんなに難しくないかも!って思えたので,
同じように今思ってくれてたら嬉しいですね!

他にもっといい例えがあるよ!って方とか意義あり!って方とか
なんでもコメントください^ ^

では・・・・!

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3