軽量コンテナalpineベースでWordPressを動かすまで
ローカルにコンテンツを置く場所を確保する
1 |
mkdir -p /data/sites/mysite/mysql |
実行コマンドを作っておく
linkはもう使われなくなってて、nameで指定した文字がコンテナ内でユニークなホスト名として名前解決してくれて通信できるようになる。但し、コンテナ同士が通信できるようにプライベートなネットワークを作っておく必要がある。
プライベートなネットワークをmynetworkとする。
1 2 3 4 5 6 |
vi net.sh --- #!/bin/sh sudo docker network create mynetwork --- |
データベースはmysqlを使う。何度も起動し直すことも想定してお掃除するスクリプトを入れちゃってますが、恒久的に残したい場合はrm と chownは削除しておいてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
mysql.sh --- #!/bin/sh sudo rm -rf /data/sites/mysite/mysql/* sudo chown -R 1000:101 /data/sites/mysite/mysql sudo docker run --rm -d -P \ --name mysql \ --net mynetwork \ -h mysql \ -v /data/sites/mysites/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=mysql \ -e DATADIR=/var/lib/mysql \ tarzan79/alpine-mysql --- |
最後にワードプレスのコンテナ。wordpressが入ってなかったりします。。。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
wordpress.sh --- #!/bin/sh sudo docker run --rm -d -P \ --name wordpress \ --net mynetwork \ -h wordpress \ -e VIRTUAL_HOST=mysite \ -v /data/sites/mysite:/DATA \ -p 1080:80 \ etopian/alpine-php-wordpress --- ※ https://github.com/etopian/alpine-php-wordpress |
作ったshellを実行します。まずnet.shを最初に実行します。そうすることで、コンテナ間の通信ができるようになります。
1 2 3 4 5 6 |
chmod +x net.sh mysql.sh wordpress.sh sudo net.sh sudo docker network list sudo mysql.sh sudo wordpress.sh sudo docker ps -a |
起動したら、wordpressのコンテナに入って、DB設定をします。
1 |
sudo docker exec -it wordpress /bin/ash |
早速ここで、別のコンテナmysqlへrootで接続します。パスワードは環境変数で定義したMYSQL_ROOT_PASSWORD=の値を入力します。
1 |
mysql -h mysql -p |
mysqlに接続できたら、wordpress用のデータベースを作成して、そのDBへwordpressコンテナのwordpressアカウントから接続できるようにします。
1 2 3 4 5 |
create database wordpress; use wordpress grant ALL PRIVILEGES ON *.* TO mysql@wordpress.mynetwork IDENTIFIED BY 'mysql' WITH GRANT OPTION; FLUSH PRIVILEGES; exit; |
作ったDBへwordpress用アカウントで接続できるか確認します。
1 |
mysql -h mysql -u mysql wordpress -p |
ブラウザでアクセスすると、Wordpressの初期設定画面が出てきます。
1 |
http://localhost:1080/ |