Docker上でMariaDB + phpMyAdminを構築する方法 最小構成
環境
- KAGOYA CLOUD VPS
- Ubuntu 20.04.4 LTS (GNU/Linux 5.11.0-40-generic x86_64)
- Docker version 20.10.13, build a224086
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" を使用する。