はじめに
業務の中で、今まではDocker for Desctopを使用していた。
不便は感じなかったものの、Docker for Desctopの悪い点をカバーしてくれると聞いて使用してみることにしました。今回はdockerでmysqlの環境構築を例に説明します。
目次
- 使用するもの・環境
- OrbStackのインストール方法
- MySQLを例に実際に起動してみる
使用するもの
・Orbstack(docker-composeを使用)
・MySQlイメージ(ver.5.7)
環境
・Mac
・Visual Stagio Code
Orbstackをインストール
brewを使ってインストール
brew install orbstack
今回はbrewでインストールしましたが、下記のサイトにてダウンロードすることも可能です。
MySQLを例に実際に起動してみる
ディレクトリの構造
docker-composeの中身
公式ドキュメントを参考に作成しました。他にも設定できる項目があるのでチェックしてみてください。
https://hub.docker.com/_/mysql
volumesは任意の名前をつけています。
dockerfile
dockerイメージ、MySQL設定ファイルの読み込みを指定しています。
今回は前述したように5.7を使用しています。
my.cnf
MySQLの文字コードの設定です。
user.sql
初期値として作成するテーブルとDBをsqlで記述しています。
docker-composeの起動
コマンドは特に変化はないので通常のdockerのコマンドを使用して起動します。
docker-compose build
コンテナを起動します。こちらもコマンドに変化はありません。
docker compose up
バックラウンドで実行する際はup の後ろに-dをつけてください。
docker compose up -d
画像はバックラウンド実行せずに起動した時のものです。
この時点でのorbstackは、コンテナが起動している状態です。起動しているかどうかの基準としては、停止ボンタンが表示されていれば起動しています。こちらから起動・停止することも可能です。
MySQLにアクセス
dockerが立ち上がったのでMySQLにアクセスします。
アクセス方法として、コンテナからMySQLに接続します。
その際に、コンテナIDが必要になります。
余談になりますが、コンテナIDを確認する方法について軽く説明します。
コンテナIDを確認する手法として、2種類あります。
作成したコンテナの情報を確認して、コンテナIDを取得する方法
docker ps
OrbStackのコンテナメニューから確認する方法
選択すると下記のように詳細情報が表示され、赤丸で囲んだ部分がコンテナIDです。
個人の好みですが、個人的に後者のOrbStackでのID取得がおすすめです。コマンドを打ち込まずに簡単にコピーできるためです。
コンテナIDが取得できたら、下記のコマンドを実行してコンテナに接続します。
docker exec -it [コンテナID] bash
続いて、コンテナ内のMySQLに接続します。接続できるとパスワードを聞かれるので、docker-compose.ymlで設定したパスワードを入力してください。
mysql -u root -p
テーブルが作成されているか確認します。
show databases ;
赤丸で囲んだ部分が初期のデータベースです。
青丸で囲んだ部分がusers.sqlで作成したテーブルです。
下記のコマンドを実行するとテーブルの中身を実際に確認できます。
use testQl;
テーブルの中身をSQLクエリを実行して確認します。
無事にデータが投入されています。
終了する際も特に変更点はありません。
docker compose stop
MySQLデータを初期化したい場合などはコンテナを削除してください。こちらもコマンドの変更はありません。
docker compose down
まとめ
以上がOrbStackでコンテナを作成・起動してみました。
個人的には、コンテナのIDの確認がしやすい点であったり、今回は触れませんでしたが、volumesで保存されているデータの確認がfinderでできるという利点があり、使いやすいのではないかと思います。