Docker上でMariaDB + phpMyAdminを構築する方法 最小構成

環境

MariaDB + phpMyAdmin 最小構成

MariaDBイメージphpMyAdmin イメージを使用します。


ディレクトリ構成

./test/
 ├ docker/
 │ └ phpmyadmin/
 │   └ sessions/
 ├ .env
 └ docker-compose.yml


ディレクトリとファイルの作成

$ mkdir test
$ cd test
$ mkdir docker
$ mkdir docker/phpmyadmin
$ mkdir docker/phpmyadmin/sessions
$ touch .env
$ touch docker-compose.yml


./test/docker-compose.yml を編集

version: '3.7'

services:
  db-main:
    image: mariadb:10.7
    container_name: db-main
    environment:
      TZ: 'Asia/Tokyo'
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    ports:
      - 3306:3306
    networks:
      - phpmyadmin-link
    restart: always
  
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin    
    environment:
      # 1を指定すると任意のサーバーへの接続が許可される
      - PMA_ARBITRARY=1
    tty: true
    restart: always
    ports:
      - 8080:80
    volumes:
      - ./docker/phpmyadmin/sessions:/sessions
    networks:
      - phpmyadmin-link
    depends_on:
      - db-main

networks:
  default:
    external:
      name: phpmyadmin
  phpmyadmin-link:
    external:
      name: phpmyadmin


./test/.env を編集

# MariaDB
MYSQL_ROOT_PASSWORD='rootpassword'
MYSQL_USER=dockeruser
MYSQL_PASSWORD='userpassword'
MYSQL_DATABASE=dockerdb


新規ネットワーク作成

$ docker network create phpmyadmin


起動

$ docker-compose up -d


phpMyAdminにアクセス

http:// ローカルIP or サーバーIP:8080 にアクセス
例) http://localhost:8080
例) http://198.51.100.0:8080

サーバー:db-main
ユーザ名:root
パスワード:rootpassword


備考

phpMyAdmin イメージは3つのバリエーションがある。

  • "apache" includes a full Apache webserver with PHP and includes everything needed to work out of the box. This is the default when only a version number is requested.
  • "fpm" only starts a PHP FPM container. Use this variant if you already have a separate webserver. This includes more tools and is therefore a larger image than the "fpm-alpine" variation.
  • "fpm-alpine" has a very small footprint. It is based on Alpine Linux and only starts a PHP FPM process. Use this variant if you already have a separate webserver. If you need more tools that are not available on Alpine Linux, use the fpm image instead.

何も指定しない場合(image: phpmyadmin/phpmyadmin)やバージョン番号のみが指定されている場合(image: phpmyadmin/phpmyadmin:5.0)は "apache" バリエーションが使用される。"apache" には、PHP を備えた完全な Apache Web サーバーが含まれており、すぐに使用できるようにするために必要なすべてが含まれています。
Nginxなど別の Web サーバーが既にある場合は "fpm" や "fpm-alpine" を使用する。