Dockerとは
– アプリケーションをパッケージングし、「コンテナ」単位で実行するためのプラットフォーム。共通のプラットフォーム、共通のコンテナを利用することで、「自分のPCでは動いたのに、他の人のPCやサーバーでは動かない」といった環境問題を解消できる。
- Dockerのメリット
- 環境の分離・独立
- 再現性
- ポータビリティ
- 環境構築が簡単
- 比較的軽い
- Dockerのインストール
- 公式サイト
https://www.docker.com/products/docker-desktop/ - インストール時の設定
- バージョン確認
Command: docker --version docker compose version
- 動作確認
Comannd docker run hello-world
以下のようなメッセージが出れば成功Hello from Docker! This message shows that your installation appears to be working correctly. ...
- 公式サイト
- WordPressを構築するための手法の例
- レンタルサーバー/ホスティングサービス
- ローカル環境に直接インストール (XAMPP, MAMPなど)
- Dockerを利用した構築
- WordPressをDockerで構築するメリット
- クリーンな環境を維持
- テストや実験の容易さ
- チーム開発の効率化
- 本番環境との整合性
- WordPressの構成
- apatche一体型
- メリット
- デメリット
- Nginx + PHP-FPM https://qiita.com/dalchan/items/20e758fe8646e7c58df8
- メリット
- デメリット
- apatche一体型
- DockerでWordPressを構成する手順(Apache一体型)
- 目的
Docker Compose
により、WordPressイメージ(Apache版)とMySQL(データベース)の2つのコンテナを連携させる。
- 作業用ディレクトリの作成
- WordPressプロジェクト用のディレクトリをPC上に作成する。
Command: mkdir wordpress cd wordpress
- WordPressプロジェクト用のディレクトリをPC上に作成する。
docker-compose.yml
の作成Command: nano docker-compose.yml
docker-compose.yml
の記述- 以下の記述を
docker-compose.yml
へコピペする
- 以下の記述を
- 目的
version: '3.8' # Docker Composeのファイルフォーマットのバージョン
services:
db: # データベースサービスの定義 (MySQL)
image: mysql:5.7 # 使用するMySQLのDockerイメージとバージョン
container_name: my_wordpress_db # コンテナ名(任意)
volumes:
- db_data:/var/lib/mysql # データの永続化設定
restart: always # Docker起動時に常にコンテナを起動する
environment:
MYSQL_ROOT_PASSWORD: your_strong_root_password # MySQLのrootユーザーのパスワード (強固なものに変更)
MYSQL_DATABASE: wordpress_db # WordPressが使用するデータベース名
MYSQL_USER: wordpress_user # WordPressがデータベース接続に使用するユーザー名
MYSQL_PASSWORD: your_strong_user_password # 上記ユーザーのパスワード (強固なものに変更)
networks:
- wpsite_network
wordpress: # WordPressサービスの定義 (Apache一体型)
image: wordpress:latest # 使用するWordPressのDockerイメージ(最新版のApache版)
container_name: my_wordpress_app # コンテナ名(任意)
depends_on: # 依存関係の定義 (dbサービスが起動してからwordpressサービスを起動)
- db
ports:
- "8000:80" # ポートフォワーディング(ホストPCの8000番ポートをコンテナの80番ポートに接続)
restart: always
environment:
WORDPRESS_DB_HOST: db:3306 # データベースホスト名(dbサービスのコンテナ名:ポート番号)
WORDPRESS_DB_USER: wordpress_user # dbサービスで設定したユーザー名
WORDPRESS_DB_PASSWORD: your_strong_user_password # dbサービスで設定したパスワード
WORDPRESS_DB_NAME: wordpress_db # dbサービスで設定したデータベース名
volumes:
# ホストOSの現在のディレクトリにある `wp-content` フォルダを、
# コンテナ内のWordPressの `wp-content` ディレクトリにマウントします。
# これにより、ローカルでテーマやプラグインファイルを編集すると、即座にコンテナ内のWordPressに反映されます。
- ./wp-content:/var/www/html/wp-content
# (オプション) WordPressのルートディレクトリ全体をマウントする場合
# - ./wordpress_files:/var/www/html # この場合、事前にwordpress_filesにWordPressコアファイルを展開する必要がある場合も
networks:
- wpsite_network
volumes: # 名前付きボリュームの定義(データの永続化用)
db_data:
networks: # カスタムネットワークの定義
wpsite_network:
driver: bridge
- DockerでWordPressを起動する
- 前提
docker-compose.yml
ファイルのあるディレクトリへ移動する
- WordPressコンテナの起動
Command: docker-compose up -d
- コンテナの起動確認
Command: docker-compose ps
- 前提
- WordPressの初期設定
- WordPressへのアクセス
- 上記の例では
http://localhost:8000
- 上記の例では
- WordPressの初期設定画面
- WordPressへのアクセス
WordPressの停止と削除
- WordPressの停止
docker-compose.yml
があるディレクトリで以下のコマンドを実行Command: docker-compose down
- WordPressの削除(初期化)
- 同じく、以下のコマンドを実行する
Command: docker-compose down -v
- 同じく、以下のコマンドを実行する