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を実行したり、ホストからデータを投入・バックアップしたりできます。