Docker開発環境構築ガイド:Webクリエイター&エンジニア必携!仮想化&コンテナ技術をWindows&Macで完全マスター
はじめに
Dockerは、開発環境を手軽に構築・管理できるコンテナ技術です。コンテナを使用すると、アプリケーションとその依存関係を一つのパッケージとして管理できるため、開発環境の再現性が向上し、作業の効率化が図れます。本記事では、Dockerを使って仮想サーバーを構築する方法から、複数のコンテナを簡単に管理するためのDocker Composeの使い方まで、Webクリエイター&エンジニア向けに解説します。WindowsやMacでも手軽に実行できる方法をご紹介しますので、ぜひ参考にしてみてください。
Dockerを使った仮想サーバー構築の実施方法解説
Dockerを使うことで、仮想サーバーの構築が簡単になります。Dockerは、コンテナ型の仮想化技術を提供し、アプリケーションとその依存関係を一つのパッケージとして扱うことができるため、開発環境の構築や管理が非常に効率的です。以下、具体的な手順を見ていきましょう。
1. Dockerでコンテナを作成するには
まず、Dockerをインストールし、基本的なコマンドを使ってコンテナを作成していきます。
dockerコマンドの基本
Dockerのコマンドは、docker <操作> <対象>
の形式で実行します。例えば、コンテナを作成する場合は、docker run
コマンドを使用します。
docker run -d -p 80:80 --name apache-container httpd
このコマンドでは、httpd
(Apache HTTP Server)のコンテナをバックグラウンドで実行します。
-p 80:80
はホストのポート80をコンテナのポート80にマッピングします。-d
はバックグラウンドで実行するオプションです。--name apache-container
でコンテナの名前をapache-container
に設定します。
2. もっと簡単にコンテナを作成するには
事前に作成したDockerイメージを使用すると、コマンドを簡単にすることができます。また、docker-compose
を使うと、複数のコンテナを一括で管理でき、さらに効率的です。
複数コンテナをラクに作れるDocker Compose
Docker Composeを使うことで、複数のコンテナを一度に管理することができます。以下では、Docker Composeを使用した手順を解説します。
1. Docker Composeとは
Docker Composeは、複数のコンテナを定義し、一括で起動・停止できるツールです。これにより、コンテナ間の依存関係や設定を簡単に管理できます。設定はYAML形式で記述します。
2. Docker Composeを使った手順
Docker Composeでは、以下の3ステップでコンテナを管理できます。
ステップ1: docker-compose.yml
ファイルを作成する
まず、設定ファイルを作成します。例えば、以下のような内容でApacheのコンテナを定義します。
version: '3'
services:
apache:
image: httpd
ports:
- "80:80"
ステップ2: コンテナを起動する
次に、docker-compose
コマンドを使ってコンテナを起動します。
docker-compose up -d
これで、docker-compose.yml
で定義したコンテナがバックグラウンドで起動します。
ステップ3: コンテナを停止・管理する
コンテナを停止するには、以下のコマンドを実行します。
docker-compose down
コンテナを再起動したい場合は、以下のコマンドで再起動できます。
docker-compose start
Docker Compose ファイルの書き方を理解しよう
Docker Composeファイル(docker-compose.yml
)の記法を理解すると、設定がさらに簡単になります。YAML形式で書かれた設定ファイルでは、以下のような項目を定義できます。
YAMLの基本的な書き方
YAMLファイルはインデントが非常に重要で、階層的に設定を記述します。例えば、以下のようにApacheの設定を記述できます。
version: '3'
services:
apache:
image: httpd
ports:
- "80:80"
volumes:
- ./html:/usr/local/apache2/htdocs/
主な項目
version
: Composeファイルのバージョン。services
: コンテナの設定を定義します。image
: 使用するDockerイメージ。ports
: ポートマッピング。volumes
: データの永続化設定。
コンテナ内へファイルをコピーする
コンテナ内にファイルをコピーする際は、docker cp
コマンドを使用します。例えば、ホストの index.html
ファイルをApacheコンテナにコピーするには、以下のコマンドを実行します。
docker cp ./index.html apache-container:/usr/local/apache2/htdocs/
MariaDBコンテナを構築する
次に、データベースを利用するためのMariaDBコンテナを構築する方法を解説します。
1. MariaDBとは
MariaDBは、MySQLのフォークであり、高性能でスケーラブルなリレーショナルデータベースです。Dockerを使って、MariaDBコンテナを簡単にセットアップできます。
2. MariaDBコンテナの設定
docker-compose.yml
を使ってMariaDBのコンテナを設定する例です。
version: '3'
services:
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
この設定では、MYSQL_ROOT_PASSWORD
環境変数を使って、MariaDBのrootパスワードを example
に設定します。
コンテナ内でコマンドを実行するには
コンテナ内でコマンドを実行するには、docker exec
を使います。
docker exec -it apache-container /bin/bash
このコマンドで、apache-container
コンテナ内でシェルを起動し、コマンドを実行できます。
WordPress + MariaDBコンテナを構築する
WordPressとMariaDBを連携させて使いたい場合、Docker Composeを使って一度に両方のコンテナをセットアップできます。以下に、設定例を示します。
version: '3'
services:
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
wordpress:
image: wordpress
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: example
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: example
この設定により、WordPressがMariaDBに接続して動作します。
コンテナのデータを永続化する
コンテナのデータを永続化するためには、ボリュームやバインドマウントを使用します。例えば、以下の設定でWordPressのデータを永続化できます。
version: '3'
services:
wordpress:
image: wordpress
volumes:
- wordpress-data:/var/www/html
volumes:
wordpress-data:
Flaskコンテナを構築する
Flaskを使ったWebアプリケーションをDockerで実行する方法です。まず、Flaskアプリケーションを作成し、Dockerfileを使ってコンテナ化します。
FROM python:3.8
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
まとめ
Dockerは、開発環境を効率的に管理するための強力なツールです。コンテナを使うことで、環境依存の問題を解消し、迅速に環境を再現できます。Docker Composeを使えば、複数のコンテナを簡単に管理でき、データベースやWebアプリケーションをセットアップするのもスムーズです。ぜひ、このガイドを参考に、Dockerを活用した開発環境の構築を始めてみましょう!
ピンバック: Docker開発環境構築ガイド:Webクリエイター&エンジニア必携!仮想化&コンテナ技術をWindows&Macで完全マスター » OS » Youneed