作業メモ: docker-composeで動いていたWordPressとMariaDBのデータを移行する

MariaDBのデータをmysqldumpで取得する

# コンテナの名前を調べる
$ docker ps | grep mariadb
b11692b1c02a        mariadb                   "docker-entrypoint.s…"   3 weeks ago         Up 25 hours         3306/tcp                                             core_mysql_1
# mysqldumpでデータを取得・保存する
$ docker run --rm -it --network core_default --link core_mysql_1:mysql mariadb mysqldump -h mysql -uroot -p******** wpdb | gzip > mysqldump-wpdb.dat.gz
# コピる
$ scp mysqldump-all.dat.gz ubuntu@xxx.xxx.xxx.xxx:

データをmysqlコマンドで投入する

wordpress.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com は、予め作っておいたAmazon RDS (MariaDB)のインスタンス。

$ zcat mysqldump-tech.dat.gz | docker run -i --rm mariadb mysql -h wordpress.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -u kno -p********** tech

docker-compose.yml を修正する

ここではリバースプロキシに https-portal を使ってます。そのうちELB(ALB)を試してみたい。

$ cat docker-compose.yml
version: '2'

services:
  https-portal:
    image: steveltn/https-portal
    ports:
      - '80:80'
      - '443:443'
    links:
      - wordpress
    restart: always
    environment:
      DOMAINS: '2502.net -> http://wordpress'
      STAGE: production
      CLIENT_MAX_BODY_SIZE: 50M

# 元々使ってたエントリ
#  mysql:
#    image: mariadb
#    environment:
#      MYSQL_ROOT_PASSWORD: **********
#    volumes:
#      - /export/mysql/var/lib/mysql:/var/lib/mysql

  wordpress:
    image: mywordpress
    environment:
      WORDPRESS_DB_HOST: wordpress.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
      WORDPRESS_DB_NAME: wpdb
      WORDPRESS_DB_USER: kno
      WORDPRESS_DB_PASSWORD: **********
    volumes:
      - /export/wordpress/var/www/html:/var/www/html

セキュリティグループに注意

MySQL/Aurora (TCP 3306) がデフォルトでブロックされているので、気付かないとなぜかつながらなくてハマります。