この記事について
データベース、これは 2020 年になっても、エンタープライズなどのアプリケーション開発において、必ずと言っていいほど使用されるものだと思います。
ただ、従来同様、本番環境や検証環境、開発環境に至るまで、未だに人力で頑張ってホスト OS に直接インストール
している方が多いというのが現状です。
(少し誇張が過ぎるかもですが)
開発環境のデータベースのインストールに 5 分以上時間をかけるのは時間の無駄です!
今、このタイミングで、Docker でサクッと DB をインストールできることを覚えましょう。
ただし、本番環境など、冗長化構成や可用性を担保する必要がある場合などは、きちんと要求に合致したインストール方法を実施をしましょう。
Oracle Database on Docker
※ちょっとインストール方法が面倒なので、後日追記します。早く情報を知りたい方は、参考情報に記載の内容をご参照ください。
SQL Server on Docker
- Docker Hub - Microsoft SQL Server (Ubuntu ベース)
GitHub にて公開しているこちらのリポジトリを参考に、docker-compose.yaml を作成してください。
※下記の yaml は RHEL ベースの SQL Server (on Linux) on Docker です。
※GitHub のリポジトリでは、ブランチで RHEL ベースと Ubuntu ベースの 2 つを用意しています。(2017 は Ubuntu のみ)
version: '3'
services:
mssql:
image: mcr.microsoft.com/mssql/rhel/server:2019-latest
container_name: 'mssql2019-latest-rhel'
environment:
- MSSQL_SA_PASSWORD=<your_strong_password>
- ACCEPT_EULA=Y
# - MSSQL_PID=<your_product_id> # default: Developer
# - MSSQL_PID=Express
# - MSSQL_PID=Standard
# - MSSQL_PID=Enterprise
# - MSSQL_PID=EnterpriseCore
ports:
- 1433:1433
# volumes: # Mounting a volume does not work on Docker for Mac
# - ./mssql/log:/var/opt/mssql/log
# - ./mssql/data:/var/opt/mssql/data
docker-compose up -d
で、コンテナーを起動すれば、SQL Server のインストールは完了です。
docker-compose up -d
MySQL on Docker
GitHub にて公開しているこちらのリポジトリを参考に、docker-compose.yaml を作成してください。
version: '3'
services:
db:
image: mysql:8
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: P@ssw0rd #required
# MYSQL_DATABASE: employees #optional
# MYSQL_USER: user #optional
# MYSQL_PASSWORD: P@ssw0rd #optional
# MYSQL_ALLOW_EMPTY_PASSWORD: "yes" #optional
# MYSQL_RANDOM_ROOT_PASSWORD: "yes" #optional
# MYSQL_ONETIME_PASSWORD: "yes" #optional (MySQL 5.6 or above)
# MYSQL_INITDB_SKIP_TZINFO: "" #optional
ports:
- 3306:3306
volumes:
- ./data/mysql:/var/lib/mysql
- ./conf:/etc/mysql/conf.d
docker-compose up -d
で、コンテナーを起動すれば、MySQL のインストールは完了です。
docker-compose up -d
PostgreSQL on Docker
GitHub にて公開しているこちらのリポジトリを参考に、docker-compose.yaml を作成してください。
version: '3'
services:
db:
image: postgres:13
container_name: postgres
restart: always
environment:
POSTGRES_PASSWORD: P@ssw0rd #required
# POSTGRES_USER: postgres #optional
# POSTGRES_DB: postgres #optional
# POSTGRES_INITDB_ARGS: "--data-checksums" #optional
# POSTGRES_INITDB_WALDIR: "" #optional (PostgreSQL 10+ or above)
# POSTGRES_INITDB_XLOGDIR: "" #optional (PostgreSQL 9.x only)
# POSTGRES_HOST_AUTH_METHOD: trust #optional
# PGDATA: /var/lib/postgresql/data/pgdata #optional
ports:
- 5432:5432
volumes:
- ./data:/var/lib/postgresql/data
docker-compose up -d
で、コンテナーを起動すれば、PostgreSQL のインストールは完了です。
docker-compose up -d
MongoDB on Docker
GitHub にて公開しているこちらのリポジトリを参考に、docker-compose.yaml を作成してください。
version: '3'
services:
mongo:
image: mongo:latest
container_name: mongodb
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: P@ssw0rd
ports:
- 27017:27017
volumes:
- ./data/db:/data/db
- ./data/configdb:/data/configdb
# Command 1: Customize configuration without configuration file
# Command 2: Setting WiredTiger cache size limits
# command: >
# --serviceExecutor adaptive
# --wiredTigerCacheSizeGB 1.5
mongo-express:
image: mongo-express:latest
container_name: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: P@ssw0rd
docker-compose up -d
で、コンテナーを起動すれば、MongoDB のインストールは完了です。
docker-compose up -d
管理ツール
管理ツールについては、各自好きなものを使用すれば良いと思いますが、おすすめは Visual Studio Code を使う方法です。
Docker Compose も DB 操作も Visual Studio Code 内で行えるため、とても便利です。
詳細は以下の記事を参照してください。
- Visual Studio Code 上で SQL Database を操作するための便利な拡張機能
- Visual Studio Code 上で MySQL を操作するための便利な拡張機能
- Visual Studio Code 上で PostgreSQL と Cosmos DB を操作するための便利な拡張機能
- Visual Studio Code 上で MongoDB を操作するための便利な拡張機能
また、MySQL と PostgreSQL のところで記載している adminer のコンテナーを一緒に作るのもアリかと思います。
参考情報
Oracle Database
- GitHub - oracle/docker-images
- 公式 Oracle Database の Docker イメージを構築
- Oracle Database 19c available on GitHub
- [Oracle Database] 公式Docker Imageを利用してOracle Database 19c環境を構築してみた