Docker(ドッカー)とは何か。
一言でいうと、どんなパソコン・どんな環境からでも、同じようにプログラムを動かせるようにする仕組みです。
Dockerを理解するうえで、個人的にいちばん腑に落ちたのが「大手飲食チェーン店」の例えでした。
全国に店舗があり、
キッチンの設備も、働く人も、立地もバラバラなはずなのに、
出てくる料理の味はほぼ同じですよね。
それができる理由はとてもシンプルで、
レシピ、調理手順、使う材料、盛り付け方といった
細かいマニュアル(前提条件)がすべて揃っているからです。
Dockerも、これとほぼ同じことをしています。
OSやソフトウェア、バージョンなどの違いをまとめて面倒見て、
「この条件で動かす」というルールを一式として管理します。
その結果、自分のPCでも、他人のPCでも、サーバー上でも、
ほぼ同じ状態でプログラムを動かせるようになります。
プログラミング学習をしていると、
「自分のPCでは動いたのに、他人のPCでは動かない」
「本番環境に持っていったらエラーが出る」
といった話をよく耳にしますが、
Dockerはまさに、こうした環境差によるトラブルを減らすための道具だと理解しています。
Dockerでは、Dockerfile(ドッカーファイル)というファイルに、
使うOSやインストールするソフト、起動手順などを書いていきます。
これは「この条件で動かしてください」という指示書のようなものです。
Node.js用、Python用など、用途に特化したDockerfileが数多く公開されているのも特徴で、
環境をゼロから作らなくても済むようになっています。
Dockerは、環境の違いを吸収し、実行条件を揃えてくれる仕組みです。
「自分のPCでは動いたのに問題」を減らすための、現代の開発ではほぼ必須レベルの道具だと感じています。
今回はドッカーについて個人的な整理をアウトプットしてみました。
最後までご覧いただきありがとうございました。