🐬
DockerでMySQLのDB環境を構築する
こんにちはOtOです!
SQLのクエリなどを試し打ちしたい時があったので、Docker Hubで公開されているMySQLイメージを使って、ローカルにDB環境を構築するやり方を備忘録として残そうと思います。
概要
使用環境
- MacOS
- Docker for Mac (version 20.10.14)
- VScode:ターミナル
流れ
- Docker Hubの公式MySQLイメージをpullする
- コンテナを起動する
- MySQLに接続する
1. Docker Hubの公式MySQLイメージをpullする。
- Docker Hubからイメージを下記コマンドによりpullする
$ docker pull mysql --platform linux/x86_64
補足:'--platform linux/x86_64'を実行しないと下記エラーが出る。
no matching manifest for linux/arm64/v8 in the manifest list entries
→ MacbookのM1のCPUが、linux/arm64/v8なのだが、使用しようとしたimageがこれに対応していない
- imageを確認する。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 65b636d5542b 3 weeks ago 524MB
2. コンテナを起動する。
- pullしたimageからコンテナを作成する
docker run --name mysql -e MYSQL_ROOT_PASSWORD={{自分でpasswordを設定する}} -d {{利用するイメージ名}}
- 例は下記
docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
補足:
-
オプション
- -e:環境変数の設定
- -d:デタッチドモードの指定
- バックグラウンドでコンテナを立ち上げる
- バックグラウンドで立ち上げないと、コンソールがどのコンテナのログに占有されて他のコマンドを打つことができなくなる
- コンテナを起動したままにして、他のアプリケーションを動かしたりしたい場合はデタッチドモードを使う
- name:コンテナ名を指定できる。
3. MySQLに接続する
- 下記コマンドでDBに接続する
$ docker exec -it {{コンテナIDもしくはコンテナ名}} bash
ユーザー名@コンテナID:/# mysql -u root -p
- 例は下記
docker exec -it 3b8c27369c95 bash
root@3b8c27369c95:/# mysql -u root -p
Enter password:
この後に先ほど指定したパスワードを入力するとデータベースと接続できる。
補足:
-
オプション
- -u:ユーザー名
- -p:パスワード入力指定
-
-it:-i -tと同義
- -i:--interactive
- アタッチしていなくても、標準入力を開き続ける
- -t:--tty
- 疑似TTYを割り当て
- -i:--interactive
後書き
今回はSQL単体で使いたかったので、他のアプリケーションはなしで環境構築しました。
もし他のアプリケーションと同時に使う場合はcomposeでできるので試してみてください。
Discussion