MariaDBしたい(mariadb)
# DockerHub Container Registry
# MariaDB: https://hub.docker.com/_/mariadb
# Adminer: https://hub.docker.com/_/adminer/
# $ docker compose up --detach
# $ open http://localhost:8080
# $ docker compose down --volumes
services:
# MariaDBコンテナ
db:
image: mariadb:10.11
working_dir: /workspace
environment:
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:-root_pass}
MARIADB_DATABASE: ${MARIADB_DATABASE:-test_db}
MARIADB_USER: ${MARIADB_USER:-test_user}
MARIADB_PASSWORD: ${MARIADB_PASSWORD:-test_pass}
ports:
- "3306:3306"
volumes:
# 内部ボリューム
- db_data:/var/lib/mysql
# バインドボリューム
# 設定ファイルをマウント
#- ./config/:/etc/mysql/conf.d/
# 既存のデータベース(のダンプ)で初期化
- ./backups/:/docker-entrypoint-initdb.d/
# Adminerコンテナ
adminer:
image: adminer:latest
ports:
- "8080:8080"
environment:
- ADMINER_DEFAULT_SERVER=db
depends_on:
- db
volumes:
db_data:
コンテナーを起動したい
$ docker compose up -d
コンテナーで操作したい
$ docker compose exec db mariadb -u root -p
コンテナーを終了したい
$ docker compose down
MariaDBについて
MariaDBをDockerで起動します。認証情報は環境変数で設定し、データはnamed volumeで永続化しています。環境変数は.envで変更します。上記サンプルでは、デフォルト値を指定しているため、.envファイルがなくても動作します。
Adminerはマルチプラットフォーム対応のデータベース管理ツールで、ブラウザから簡単にMariaDBを管理できます。コンテナー内で mariadb コマンドを使ってSQLを実行したり、ホストからデータを投入・バックアップしたりできます。