Help us understand the problem. What is going on with this article?

DockerでさくっとPostgreSQL/MySQL/MariaDBを触る方法

More than 3 years have passed since last update.

事前準備

開発環境のOSにあわせて、Dockerをインストールしてください

検証環境

Docker v1.12.0 を利用しています

$ docker version

Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      linux/amd64

PostgreSQL(Official Repository

# PostgreSQLコンテナの起動(バージョンは任意)
$ docker run --name postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:9.5.4

# 接続の際にパスワードを聞かれるのが面倒なので.pgpassを作成
$ echo "*:5432:*:*:postgres" >> ~/.pgpass
$ chmod 600 ~/.pgpass

# brewでさくっとPostgreSQLクライアントをインストール
$ brew install postgres

# PostgreSQLへの接続
$ psql -h localhost -U postgres

# 作業完了したらコンテナを停止
$ docker stop postgres

MySQL(Official Repository

# MySQLコンテナの起動(バージョンは任意)
$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -p 3306:3306 -d mysql:5.7.14

# brewでさくっとMySQLクライアントをインストール
$ brew install mysql

# MySQLへの接続
$ mysql -h 127.0.0.1 -uroot -pmysql

# 作業完了したらコンテナを停止
$ docker stop mysql

プチハマりメモ

mysql -h localhost -uroot -pmysqlで接続しようとしたときに、エラーが出た

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

この辺りの資料がとても参考になった

MariaDB(Official Repository

# MariaDBコンテナの起動(バージョンは任意)
$ docker run --name mariadb -e MYSQL_ROOT_PASSWORD=mariadb -p 3306:3306 -d mariadb:10.1.16

# MariaDBへの接続
$ mysql -h 127.0.0.1 -uroot -pmariadb

# 作業完了したらコンテナを停止
$ docker stop mariadb

データの永続化をしたい場合

Data Volume Container を利用することで実現可能。

この辺りの資料がとても参考になります

ryysud
Software Engineer at Z Lab Corporation (Subsidiary of Yahoo! Japan). Previously Data Engineer at DMM.com LLC. Interested in Kubernetes, SPIFFE, SPIRE and OPA.
https://reboooot.net
zlab
技術で新しい世界へシフトする。
https://zlab.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away