こんにちは、なかにしです。
よく分かっていなかったので敬遠していたdocker。
実務で何回かdocker触っていく内に、
あれ?dockerってもしかして楽?って思ったのでまとめます。
いつ使う?
何かを作りたい。
でも環境構築めんどくさい。
「誰かが作ってくれた環境構築のファイル使っちゃお」がdockerです。
例えば、MySQLを使いたいとします。
Windowsであれば、
MySQLのインストーラーを公式ページからダウンロードして、開いて、「次へ」とかのボタンポチポチして設定していくのが一般的かと思いますが、dockerを使えばたった2行で設定できます。
しかもローカルへのインストールがないので、ポート競合とか意味分からんエラーも起こりません。
DockerでMySQLを使う
docker desktopを開いた状況で、
docker pull mysql
docker run --name sample-mysql -e MYSQL_ROOT_PASSWORD=sample -p 12344:3306 -d mysql
オワリです。
これでMySQLが立ち上がりました。
楽過ぎんよ…
ざっくり説明しておくと、
dockerは「image」という下地を使って「コンテナ」を組み立てます。
今回はMySQLが入った「コンテナ」を組み立てたかったので、
MySQLの「image」をインターネットから取ってきて(pull)、組み立てた(run)感じです。
「コンテナ上」(自分のPCとは別の空間的なもの)で作ったので、変なエラーとかも基本的には起こりません。
起こるとすればポート競合ですが、これは「docker run」の「-p 12344:3306」の前半部分の「12344」が自分のPCで既に使用されているときのみです。
使用されていたとしても、「12345」とか「12222」とかの別なポートでdocker runすれば済む話なので、大きな問題になりません。
さいごに
超絶ざっくりですみません。
とりあえずこの感動を共有したかったので記事にしました。
今はMySQL単体で立ち上げたので「Docker」を使用しましたが、
複数同時に立ち上げたい(例:「MySQL」と「Node.js」)ときは「Docker Compose」を使用します。
これも後でまとめられたらいいな。