WordPress

DockerでつまずくComposeとWordPress

Mac miniにDocker DeskTopをインストール、Dockerドキュメント日本語化プロジェクトのDocker Composeにある「クィックスタート:ComposeとWordPress」を見ながらdocker-compose.ymlを保存して実行するも、あぁ無情!Error establishing a database connectionです。

WordPressのインストール実行画面まで、次の手順を踏むと動作するようになりました。理由は分かりませんが。

  1. docker-compose up -d で起動:http://localhost:8000で上のエラー
  2. docker exec -it <x_db_1> /bin/bash でコンテナをシェルでmysqlクライアント実行
    <x_db_1>は docker-compose ps(または docker container ls) でリストされたmysql:5.7動作のコンテナ名
  3. #mysql -u wordpress -p wordpress でパスワードwordpressを入力

ここでmysqlクライアントが実行され、プロンプト mysql> が表示されると、http://localhost:8000でWordPressのインストール実行画面が表示され、動作するようになりました。

この手順で動作したときの docker-compose.yml は次の通り。

version: '3'

services:
  db:
    image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: admin
      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_NAME: wordpress
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DEBUG: "true"
volumes:
    db_data:

です。

Tips(備忘録)

Docker Desktopの更新

上部メニュー歯車アイコンから左のSoftware Updatesメニューを選択、更新があれば更新ボタンが表示されるので、ボタンを押して再起動でOK。

コンテナの内容を壊さず終了、次回起動

$ docker-compose stop で終了

$ docker-compose start で起動

データベースだけ残し、コンテナはクリア(ご破算)

$ docker-compose down

データベースもクリア

$ docker-compose down –volumes

コンテナもイメージも、使っていないvolumeも全部クリア

$ docker-compose down –volumes (注:volumes前のハイフンは2つ)
$ docker image rm $(docker image ls -a -q)
$ docker volume rm $(docker volume ls -q)

コンテナ全部クリアするとき

$ docker container rm $(docker container ls -a -q)