目次
Dockerとは?
- ソフトウェア開発のためのプラットフォーム
- アプリケーションとその依存関係を"コンテナ"という単位でまとめて管理する
- どのような環境でも同じように動作するアプリを簡単に作成/配布/実行が可能
コンテナとは?
アプリとその依存関係をまとめた軽量の仮想環境となります。
コンテナと仮想マシンの違い
大きな違いとして、仮想マシンは仮想化ソフトウェア上にゲスト毎にOSやカーネルが存在するため動作が重い。
対してコンテナはコンテナ管理ソフトウェア上にOSやカーネルが存在せず、ホストOSのOSやカーネルが共有される。またAP+MWのみが環境毎に隔離された状態で保持されるため、動作が軽い。

コンテナの特徴
メリット | デメリット |
・起動が早い(軽量かつ高速) ・アプリと依存関係を1つのイメージにまとめることで、環境の一貫性を担保できる ・どの環境でも同じ動作を保証する | ・ホストOSと同じOSを使わないといけない |
Dockerの主要コンポーネント

Docker Composeとは?
Dockerコンテナを管理するツール。
- 複数のDockerコンテナを定義、管理し、まとめて実行するために使用
- アプリケーションの開発やテストで利用
特徴
- 複数コンテナの実行
- コンテナ間の通信
- 環境変数やボリュームの共有
おまけ
Dockerを触る際に使用したコマンドを簡単にまとめます。
- npm install:ノードの初期化
- npm start:起動
- docker compose up:実行
- docker compose down:削除
npmコマンドとは?
Node.jsのパッケージ管理ツールであるnpmを操作するためのコマンドラインインターフェース。
※ Node.jsとは、JavaScriptをサーバーサイドで実行するための実行環境です。もともとJavaScriptはWebブラウザ内で動作するものとして開発されましたが、Node.jsにより、サーバ側でもJavaScriptを使ってWebアプリケーションやその他のアプリケーションを開発できるようになりました。
docker-compose.yaml
利用したい複数のコンテナやネットワーク、ボリュームを定義するファイル