なぜDockerを使うのか?Dockerのメリットを紹介

Docker

こんにちは、aiiro(@aiiro29)です。

今回はDockerを使ったことはないけれど、

「どんなことができるか気になっている人」
「これからDockerを使ってみたいと考えている人」

に向けて、Dockerのメリットを解説したいと思います。

スポンサーリンク

Dockerイメージとコンテナについて

Dockerでは、「Dockerイメージ」や「コンテナ」といった言葉が頻繁に使われるため、簡単に触れておきます。

Dockerにはコンテナ型仮想化という技術が使用されています。

DockerはDockerイメージを使用して、コンテナを生成し、生成されたコンテナ上でNginxやPHP等のアプリケーションが動いています。

DockerイメージにはNginxのDockerイメージや、PHPのDockerイメージが存在しています。

1コンテナ1プロセス

Dockerでは1つのコンテナに1つのプロセスという考え方があります。

NginxのコンテナはNginxのプロセスを動かし、PHPのコンテナはPHPのプロセスを動かすといったように、アプリケーション(プロセス)ごとにコンテナを分けて使用します。

コンテナは別々に動かすことになりますが、コンテナ間でネットワークやファイルを共有できるため、複数のコンテナを組み合わせて使用することができます。

Dockerのメリット

開発環境やステージング環境、本番環境で同じコンテナを使える

Dockerがインストールされている環境であれば、コンテナを動かせます。

そのため開発環境で動かしたコンテナを、ステージング環境や本番環境にデプロイすれば、開発環境で動作を確認したコンテナをそのまま動かせるのです。

開発環境を簡単に構築できる

例えばローカルPCにNginxとPHP、MySQLで環境を構築することになったとします。

DockerではDocker HubというDockerイメージを公開しているサービスがあります。

Docker HubからNginx等のDockerイメージをダウンロードして、コンテナを起動すれば開発環境が用意できます。

公式のDockerイメージで不足している機能があれば、自分でDockerイメージを構築して公開することも可能です。

チームメンバーと開発環境を揃えるのが簡単になる

チーム開発をする場合、使用するミドルウェアや言語のバージョンを揃えることは重要です。

バージョンが異なるせいで、あるメンバーの環境で動いていたアプリケーションが、別の環境では動かなくなる恐れがあるからです。

Dockerイメージを共有すれば、同じコンテナを生成できるため、簡単に同じバージョンに揃えられます。

CIでDockerを使用する

CircleCI等でのCIでDockerコンテナを使ってテストを実行できます。

コンテナ内でテストを走らせることで、CIツールの環境に依存しないというメリットを得られます。

まとめ

以上、Dockerメリットについて紹介しました。

Dockerはコンテナを高速で起動できたり、環境を再構築するのが容易だったり、メリットがたくさんあります。

この記事を読んで、Dockerに興味を持ち、使ってみたいと思って頂ければ幸いです。