Dockerの特徴と、実務でのWebアプリケーション開発における使用用途
2021.04.11 Docker
仮想環境の構築・実行・共有が簡単にできるDockerの特徴(コンテナ化、軽量、環境共有、複雑な環境構築)と、実務でのテスト環境構築・開発と本番の統一・メンバー間の環境統一、Docker Compose の活用をまとめます。
Dockerとは
仮想環境の構築、実行、共有が簡単に行えるプラットフォームです。コンテナ化という方法を用い、Dockerfileに構築内容を書くことで複雑な環境の構築も可能で、環境の共有・軽量であることがメリットです。
軽量であることのメリット
環境の素早い構築や起動・停止ができ、再構築もすぐにできます。ホストPCの容量をあまり割かずに済みます。
複雑な環境の構築も可能であることのメリット
Dockerfileに事前に必要なソフトウェアなどを記載することで複雑な環境構築が可能で、柔軟にいろんな場面で使用できます。
実務での使用用途
主に(1)テスト環境の構築(CI/CD環境にDockerを使用)、(2)開発環境と本番環境の統一、(3)開発メンバーの環境の統一、の3つです。同じ環境を使うことで「開発ではうまくいったが本番ではうまくいかない」や「バグが再現しない」といった状況を避けられます。
DockerComposeを使用して複数のコンテナを合わせて使用する
複数のコンテナを起動させて合わせて使用できます。Railsを動かすコンテナ、メール送信のコンテナ、webpackerのコンテナなどを同時に起動して、より複雑な環境を構築できます。日本語ドキュメント(docs.docker.jp)も参照することをおすすめします。