PCのMySQLとコンテナ版Wordpressで環境を構築しようとしたときIPアドレスに躓いたときのメモ
PC本体(Windows10 HOME)にはMySQLを入れてあったので、Wordpressのコンテナを入手して少し練習しようと思い立った。
docker pull wordpress
とWordpressのイメージをプルして、Docker Desktopから起動しMySQLへの接続設定でPC本体のvEthernet (WSL)のIP addressを指定し使い始めた。まったくの初心者だったので、そこそこダッシュボードをいじってその日は終了した。
翌日、起動したらデータベースにつながらない!
はてな?
/var/www/html/wd-config.phpで設定されているDB_HOSTのIP addressと現在のvEthernet (WSL)のIP addressが異なっていた。
知らなかった!起動するたびにIP addressが変わるなんて!
(ここで「あたりめーじゃんか、このど素人め」という声が聞こえてきそうな・・・)
そこでvEthernet (WSL)のIP addressをDB_HOSTのIP addressに変えてしまえ!
でも、できるのか?「ネットワークと共有センター」から変更することはできた。
しかし、毎回、画面で操作するのは面倒なので、コマンドで設定することはできないものか?
以下のコマンドを管理者権限で実行すれば設定できるようだった。
https://tsuredurediary.com/archives/ip-address-change.html
(例)
netsh interface ip set address "vEthernet (WSL)" static 172.18.0.1 255.255.240.0
WindowsのIPアドレスをコマンドで簡単に切り替える | とあるオタクの徒然日記
vEthernet (WSL)のIP addressをDB_HOSTのIP addressに合わせることで使えるようになった。
しかし、コンテナ版Wordpressは使えるものの、今度はWSLとの疎通が途切れてしまっていることに気づく。
IPアドレスは起動するたびに変わる可能性があるため閉口し、諦めてMySQLもコンテナにしてWordpress環境を構築して練習していたのだが、
最近、以下の記事を発見した。
vm/wsl2に固定IPでssh-server - KemaSoft
記事の内容は理解できなかったが、プライベートIPアドレスを追加するという発想は使えるかもしれないと思い試したところうまくいった。
netsh interface ip add address "vEthernet (WSL)" 10.255.255.88 255.255.255.0
しかしやっぱり3日坊主でWordpressは上達しなかった。
毎回というわけではないが、なぜか、ときどき追加設定したIPアドレスは消えてしまうのでスクリプト化、実行には管理者権限が必要。
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators")) { Start-Process powershell.exe "-File `"$PSCommandPath`"" -Verb RunAs; exit } netsh interface ip add address "vEthernet (WSL)" 10.255.255.88 255.255.255.0
WSLに設定する場合は管理者権限は必要なく、PC起動時にsshをスタートさせておけば固定IPでsshできる。
※Wordpressには関係ないが・・・。
wsl -u root -- ip addr add 10.255.255.16/24 broadcast 10.255.255.255 dev eth0 label eth0:1
了