Dockerコンテナの要素
Dockerコンテナって、実はたった3つの要素で動いてるんだよね〜!
「Image」「Network」「Volume」の3つを使ってコンテナを起動させるんだけど……これさえ押さえとけば、マジ余裕だから!
ImageはDockerコンテナの上で起動させるOSイメージのことです! Ubuntuみたいな素のOSイメージもあれば、MySQLやPostgreSQLみたいなミドルウェアが最初から入ってる便利なイメージもあるんですよね。まずはどんな環境をコンテナとして立ち上げるか、ちゃんと選ぶのが基本です!
NetworkはDockerコンテナが使うネットワークタイプになります。 VirtualBoxとかで仮想環境をつくったことがある人なら、一発でイメージ湧くと思います! 仮想ネットワークを使う「bridgeモード」とか、ホストOSのNICを直で使う「hostモード」とかがあるんですけど……まあ、ぶっちゃけ普段はbridgeモードにしとけば全然大丈夫です!
Volumeはコンテナに追加するストレージのことです! 普通はコンテナの中にデータを保存するんですけど、コンテナって停止すると保存したファイルが全部消えちゃうんですよね。 そもそもコンテナって使い捨てが基本だから、内部にずっとデータを残すような設計はNGなんです!
Dockerのインストール
Dockerのインストール方法は公式サイトにちゃんと情報が載っているので、そちらを参照してください!
大抵の場合はCLI環境にインストールすることが多いと思うので、「Docker Engine」のページをチェックすればOKです! 「Docker Engine」を選べば必要なコンポーネントがまとめて入るので、ぶっちゃけめちゃくちゃ楽ですよ!
DockerfileとDocker Compose
どちらもコンテナの定義を設定するファイルなんですよね!
まずDockerfileなんですけど、これはコンテナイメージに対する設定ファイルになります。使うコンテナイメージとか、イメージに対して実行するコマンドなんかを指定する感じです。このDockerfileを指定して新しいイメージを作って、そのイメージを使ってコンテナを起動するんですよ!マジで基本って感じです!
で、Docker Composeなんですけど、これはイメージに対する定義だけじゃなくて、コンテナを起動するパラメータも指定できちゃうんです!しかも、複数の設定をまとめて書くこともできるんですよ。だから、複数のコンテナを使うシステムを作るなら、Docker Composeを使った方が運用負荷をめっちゃ下げられます!……あ、ちなみにコンテナ1台だけで使う場合でも普通に超有効ですよ!
Dockerfileだとイメージに対する指定しかできないので、NetworkとかVolumeの指定まではできないんですよね……。なので、コンテナの起動コマンドとしてちゃんと指定して起動してあげる必要があります。
でもでも!Docker Composeを使えば、起動コマンドの指定をめちゃくちゃ簡潔にまとめられちゃうんです!Docker Composeにコンテナの設定が全部記載されるから、管理も超ラクになって最高ですよね!