「Dockerを勉強したいけど、何から手をつければいいのかわからない…」
「docker run
コマンドを毎回オプション付きで実行するのが大変…」
「複数のコンテナを連携させる方法がよくわからない…」
そんな悩みを抱えているDocker初心者の方、Docker Compose から始めるのがおすすめです!
この記事では、Docker Composeがなぜ初心者におすすめなのか、その理由と基本的な使い方を解説します。
Docker Composeとは?
Docker Composeは、複数のコンテナをまとめて定義・管理できるツールです。YAML形式のファイル(docker-compose.yml
)に、使用するイメージ、ポート番号、環境変数などを記述することで、コマンド一つで複数のコンテナを起動・停止できます。
なぜDocker Composeが初心者におすすめなのか?
Docker Composeが初心者におすすめな理由は、主に以下の3つです。
- コマンドがシンプル:
docker-compose up
だけで、複数のコンテナをまとめて起動できます。docker run
コマンドを何度も実行する必要はありません。 - 設定がファイルで管理できる:
docker-compose.yml
に設定を記述することで、環境構築の手順を明確にできます。他の人と共有したり、バージョン管理したりするのも簡単です。 - 複数コンテナの連携が簡単: Webサーバーとデータベースなど、複数のコンテナを連携させるアプリケーションを簡単に構築できます。
Docker Composeの基本的な使い方
1. Docker Composeのインストール
Docker Desktop for Mac/Windows をインストールすれば、Docker Composeも一緒にインストールされます。Linuxの場合は、以下のコマンドでインストールできます。
Bash
# 例: Ubuntuの場合
sudo apt-get update
sudo apt-get install docker-compose-plugin
Docker EngineにDocker Composeプラグインをインストールする形が推奨されています。
2. docker-compose.yml
ファイルの作成
docker-compose.yml
という名前のファイルを作成し、以下のように記述します。
YAML
version: "3.9"
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
この例では、nginx
(Webサーバー) と mysql
(データベース) の2つのコンテナを定義しています。
version
: Docker Composeファイルのバージョンを指定します。services
: 起動するコンテナを定義します。web
:nginx
コンテナの設定image
: 使用するDockerイメージ (nginxの最新版)ports
: ポートフォワーディングの設定 (ホストの8080番ポートをコンテナの80番ポートにマッピング)
db
:mysql
コンテナの設定image
: 使用するDockerイメージ (MySQL 8.0)environment
: 環境変数の設定 (MySQLのrootパスワードを設定)
3. コンテナの起動
docker-compose.yml
ファイルがあるディレクトリで、以下のコマンドを実行します。
Bash
docker compose up -d
up
コマンドは、docker-compose.yml
に定義されたコンテナを起動します。-d
オプションをつけると、バックグラウンドで実行されます。
4. コンテナの確認
以下のコマンドで、起動中のコンテナを確認できます。
Bash
docker compose ps
5. コンテナの停止
以下のコマンドで、コンテナを停止できます。
Bash
docker compose down
まとめ:Docker Composeで快適なDockerライフを!
Docker Composeを使えば、Dockerの環境構築がぐっと楽になります。コマンドがシンプルで、設定ファイルで管理でき、複数コンテナの連携も簡単。まさに、Docker初心者にとって最強のツールと言えるでしょう。
Docker Composeをマスターして、快適なDockerライフを送りましょう!
さらにステップアップ!
docker-compose.yml
の詳細な設定: ボリューム、ネットワーク、依存関係など、より高度な設定を学ぶ。- Docker Composeと他のツールとの連携: Docker Swarmとの連携や、CI/CDパイプラインへの組み込みなどを学ぶ。
- Dockerの基礎知識: Dockerイメージ、コンテナ、ネットワークなどの基礎知識を体系的に学ぶ。
これらのステップアップを通じて、Dockerをより深く理解し、実践的なスキルを身につけることができます。