aliceの技術ブログ

技術ブログ

DockerでMySQLを利用してみたら思いのほか便利だった。

DockerでMySQLを利用してみたら思いのほか便利だった件

環境

  • Windows10 64bit Home
  • Docker Desktop
  • Docker version 24.0.7
  • MySQL Workbench

dockerでMySQLを扱う

dockerにmysqlのイメージをインストールする。 インストールコマンドは以下の通り。 docker pull mysql

docker-compose.ymlを記述する。

version: "3"

services:
  db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: <password>
      MYSQL_DATABASE: "testDB"
      MYSQL_USER: <username>
      MYSQL_PASSWORD: <user_password>
      TZ: "Asia/Tokyo"
    ports:
      - 13306:3306
    volumes:
      - db-store:/vol/mysql

volumes:
  db-store:

基本的にはdockerの公式サイトの通り。

MYSQL_ROOT_PASSWORDはrootのパスワードを設定します。

MYSQL_USER, MYSQL_PASSWORDはユーザ名およびユーザパスワードを設定します。

portsは13306:3306を指定しています。

docker側は3306で、ホストOS(Windows)側は13306にしています。

別プロセスで3306を利用しているため、3306を指定すると競合してしまうためです。

volumesはデータの永続化をするために設定しています。

db-storeは任意の名前を指定できます。

/vol/mysql部分は任意のディレクトリの絶対パスを記述することができます。

docker-compose.ymlがあるディレクトリで docker-compose up -d を実行します。

コンテナが作成されるので、Docker Desktopで確認します。 正常に完了していれば、以下のようになっていると思います。

あとはホストOS側でSQLクライアントソフトウェア等を利用して接続するだけです。

接続情報は以下の内容です。

Hostname: 127.0.0.1
Port: 13306
Username: <username>
Password: <user_password>
Default Schema: testDB

Username, Passwordはdocker-compose.ymlのMYSQL_USERとMYSQL_PASSWORDに対応します。

Default SchemaはMYSQL_DATABASEに対応します。

これでSQLの実行が可能になります。

最後に

ブログのデザイン変えてみました。

少しコードが見辛い気もしますが、しばらくはこのデザインでいきます。