技術的なお話シリーズ(浅い)
たまに目にする「Docker」って何よ?
Dockerとはコンテナイメージです。
例えば開発でMySQL入れるとなると、PC自体にインストールして、色々設定して使えるようにします。
Dockerだと、インストールは必要ありません。MySQLのコンテナイメージをダウンロードして、Docker用の設定ファイルをいじって起動するだけです
不要になったらイメージを破棄するだけです。
他の人にも共有したいときは、設定したDockerイメージを配布するだけで、すぐに環境が再現できるところが優れていますね。細かい手順書とかいらないのです。
仮想化ソフト(VMWareとか)と何が違うの?
これまでの仮想化ソフトは、「仮想OS」というのを立ち上げて、その仮想OS上で色々やります。
そのため、起動や動作も重いし、共有イメージもサイズが大きくなります。
また、仮想OSに対してもネットワークとか普通のOSに対して行う設定も必要になります。
DockerはこのOS部分は、使用してるPCのOS(ホストOS)を使用します。ですので、細かいことは考えなくてもできます。
そして仮想OSが不要なので、コンテナイメージは軽量です。
開発して作成したコンテナイメージでのデプロイも可能
AWSのECS、EKSなどのサービスを利用することで、自分の開発したシステムをコンテナイメージにして利用できます。
デプロイ方法だとか、WebサーバだPHPのバージョンがなんだっていう管理をすっ飛ばして、開発してた状態のまま運用できます。
また、イメージを更新したらそのまま適用できるので、アップデートの手間が非常に少ないです。
ただまあEC2とかの利用と比べると料金が高めですね。管理費浮くのでトレードオフですが。
これからの主流なので必須技術!
コンテナイメージの利用は現在主流ですし、今や必須技術です。
すごく簡単にできるようになっているので、ぜひ試してみてください。