自分のWindowsパソコン(ローカル環境)でLinux OS(Ubuntu)を
駆動させてDockerをインストールする。
Dockerのコンテナにより
・Webサーバー(WordPress付きApache)
・データーベースサーバー(MySQL)
を作ります。
Windows11では、WSL2(Windows Subsystem for Linux 2 )という機能が使えます。
名前の通りで、”WindowsのサブシステムとしてLinuxが使えますよ”と言う事です。
この機能のおかげでローカル環境でのDocker実装と実行が行えるようになりました。

上図のシステム構成で、
赤:Windows11の設定
青:DockerEngineのインストール
黄色:Dockerコンテナの構築
の順番で構築していきます。
Windows11の設定
Windows11ではコマンドプロンプトにて以下コマンドを実行するだけで、ubuntuがインストールされたWSL2環境が使えるようになります。
wsl --install
設定 → アプリ → 関連設定 → Windowsのその他の機能

で表示されるダイヤグラムで、Linux用Windowsサブシステムと仮想マシンプラットフォームに
チェックが入っていればOKです。

ここまでで、赤枠が終了です。
Docker Engineのインストール
Windows11の設定が終われば、PowerShellにてUbuntuが確認できますので、切り替えます。

選択するとプロンプトが

Ubuntuに変わります。
この状態で、DockerEngineをインストールします。

上記のリンクにある、
”リポジトリを利用したインストール”
を実行すれば終了
上記のコマンドの付随情報
リポジトリ(repository):「貯蔵庫」、「倉庫」などを表す言葉で、一般用語としては、さまざまなデータ、情報、知識や成果物を蓄積するデータベースやアーカイブを指す
apt :Advanced Package Tool (アドバンスド パッケージ ツール)の略で、Linuxのパッケージを操作するためのコマンドラインツール
sudo:一般ユーザーに対してコマンド実行の単位でroot権限を与える仕組
要するに、
”DockerEngineをインストールする準備をした後に、データベースからDownloadしましょう”
です。
これで、青枠が終了です。
Dockerコンテナの構築
Dockerに関するコマンドをできるだけ打ち込みたくないので、Windows側にアプリケーションの
- VSCode (拡張機能 Remote Developmentをインストール済み)
- DockerDesktop
をインストールします。後は、下記の赤枠3つのファイルをつくれば完成です。青枠はphpの初期設定
ファイルですので、開発環境に合わせて設定します。

.devcontainerフォルダの名前は固定で、そこにdevcontainer.jsonファイルを置きます。
これはRemote Developmentの仕様です。
上記のシステム構成に対応させれば、以下のようになります。

devcontainer.json:
DockerEngineに対し、Dockeの各種コマンドを実行させ、コンテナの作成を行う設定ファイル
docker-compose.yml:
各コンテナのインストールアプリケーションやその関係性を記載した設定ファイル
Dockerfile:
コンテナの仕様を記載した設定ファイル
ここではWordpressをコンテナ化してみます。
devcontainer.json
{
"name": "dev-container", // VSCodeの表示名 任意の名前でOKです。
"dockerComposeFile": [ //コンテナを作成するためのdocker-composeファイルを指定
"docker-compose.yml" // Docker Composeのファイルパス Dockerデーモンにファイルを渡す
],
"service": "wordpress", // docker-composeに定義しているサービスで最初に起動するコンテナ
"workspaceFolder": "/var/www/html", // Workspaceのフォルダを指定
}
docker-compose.yml
version: "3" # Composeファイル形式の宣言
services:
# サービス
wp_mysql:
# (任意の文字列) サービスの名称:データベース
image: mysql:5.7 # 用いるdockerイメージの指定
container_name: wp_mysql # (任意の文字列) コンテナの名称
environment:
# 環境変数の指定
MYSQL_ROOT_PASSWORD: wordpress # (任意の文字列) mysqlのルートパスワード
MYSQL_DATABASE: wordpress # (任意の文字列) mysql内のデータベース名 ※1
MYSQL_USER: wordpress # (任意の文字列) mysqlへログインする際のユーザー名 ※2
MYSQL_PASSWORD: wordpress # (任意の文字列) mysqlへログインする際のパスワード ※3
expose:
- "3306"
wordpress:
container_name: "wordpress" # (任意の文字列) コンテナの名称
build:
dockerfile: ./wp/Dockerfile # Dockerfileを指定
volumes:
# 作業フォルダの同期(コンテナ側ディレクトリをホスト側へマウント 退避)
- ./php/php.ini:/usr/local/etc/php/conf.d/php.ini
- ../wordpress:/var/www/html
depends_on:
# サービス間の依存関係を指定
- wp_mysql # wordpressの起動にはwp-dbの起動が必要
ports:
# 公開用のポートの指定
- "8090:80"
environment:
# WordPressのデータベースへの接続設定
WORDPRESS_DB_HOST: wp_mysql:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
Dockerfile
FROM wordpress:latest
COPY ../php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# PHP で必要なライブラリをインストール
RUN apt-get update \
&& apt-get install -y libonig-dev libzip-dev unzip \
&& docker-php-ext-install mbstring zip bcmath \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug
# composer のインストール
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER 1
ついでにphp.ini
display_errors = On
display_startup_errors = On
max_execution_time = 30
session.gc_divisor = 1000
session.sid_bits_per_character = 5
output_buffering = 4096
memory_limit = 128M
upload_max_filesize = 64M
post_max_size = 64M
max_input_vars = 1000
log_errors = On
error_log = /dev/stderr
error_reporting = E_ALL
expose_php = On
zend.exception_ignore_args = Off
以上を作成して

VSCodeを①、②の順でクリックすればコンテナの作成が終了です。
全て問題なく終了すれば、DockerDesktopのContainersにアプリケーション名と作成された
コンテナが確認できます。また、①でコンテナをSTARTさせ、②でPORTにアクセスすれば、
WordPressの初期画面が表示されます。



