Windows10 に Docker Desktop をインストール

 

前回投稿Windows10 に WSL2 をインストール(Docker Desktopの前準備) から続きです。

https://hub.docker.com/editions/community/docker-ce-desktop-windows

Microsoft Store を起動すると、Linuxディストリビューションが何も入ってないとインストールを薦められるが、Docker Desktopを使いたいだけならば入れなくてOK!

ちなみに、説明の中で挿入している画像データは小さくて見ずらいですが、クリックするとポップアップするようにしています。

DockerDesktop のインストール手順

「Get Docker」クリックで、正式リリース安定版がダウンロード

「Get Docker」クリックで、正式リリース安定版がダウンロード

Hyper-V、WSL2にチェック付いているのを確認して、OK

Hyper-V、WSL2にチェック付いているのを確認して、OK

Windows が再起動されます

Windows が再起動されます

インストールはここまでで完了!!

「Start」で引き続きガイドが表示される。

右のコマンドエリアで作業も可能。進めるとDockerの扱い方が出ているようです。とりあえず抜けます。

1.動作確認

Docker本体のインストールが完了しましたので、dockerコマンドが使えるか確認してみます。
バージョン番号が表示されれば正常にインストールできています。

2.設定

②右クリックから「Setting」

①タスクトレイにあるクジラアイコンを

WSL2からDockerを
実行する場合には
クリック

3.インストール後の確認

「Windows PowerShell(管理者)」から「docker version」で、Dockerも使えるようになっていることを確認
WSL環境でDocker-desktop が使えるようになっている

Docker公式ドキュメント(https://docs.docker.jp/compose/wordpress.html#wordpress)
にある「Docker-compose.yml」を、C:¥my_wordpress に置いて、
docker-composeコマンドを投入

docker-compose.yml

version: '3'

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:

Windowsファイアーウォールで、アクセスを許可する。

Dockerコンテナで、Wordpressを立ち上げることに成功!!

PowerShell から docker-desktop に接続してIPアドレスを調べた。

Dockerに接続して、IPアドレスを調査

Dockerに接続して、IPアドレスを調査

ホームページのデータを All-in-One WP Migration で突っ込んで、サイトを再現しようと思ったが、Dockerに接続してもデレクトリ構成がわからなかったので、アップロード制限が外せなかったのでやめた。

【追記1】

Windows上のWSL2環境は、本体Winとは別のIPアドレスが割り振られるようになったが、仮想ネットワーク上のIPアドレスであり、本体Winの内部にあるネットワークIFであるので、本体Winの localhost で接続できるが、家庭LANにある別PCからは接続できない。
「本体Win」と「WSL2」の関係は、「家庭LAN用ルータ」と「家庭LAN」の関係と同じ。

で、日経ネットワークにWin本体から、WSL2へのポートフォワーディングの設定方法が載っていた。

PowerShell管理者権限で、

HTTPの80ポートのポートフォワーディング

netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=WSL2のIPV4アドレス(上図では192.168.189.20)

WindowsファイアウォールでのWin80番ポートへの通信許可

netsh advfirewall firewall add rule name=”Open Port 80″ dir=in action=allow protocol=TCP localport=80

【追記2】

VirtualBoxは、HyperVとの共存に対応したが、まだまだ安定しないので、起動時にHyperVを起動しない設定が以下(日経ネットワークで見つけた)

PowerShell、コマンドプロンプトの管理者権限で、

bcdedit /set hypervisorlaunchtype off

有効に戻すのは、

bcdedit /set hypervisorlaunchtype auto