MySQL docker-compose コンテナ 作成 起動

MySQLコンテナを、docker-composeで動かすメモとなります。

以前にも同じようなメモをしていると思いますが、

MySQLは何かと利用機会が多いため、MySQLだけの内容で残しておきたいと思います。

環境

  • macOS:Big Sur 11.5.2
  • Docker:20.10.12
  • Docker Desktop:4.5.0 (74594)
  • docker-compose:1.29.2, build 5becea4c

設定ファイル用意

・Dockerfile

MySQLのバージョンは、docker hubにて確認して指定します。

https://hub.docker.com/_/mysql

FROM mysql:5.7.41-debian
COPY ./my.cnf /etc/mysql/conf.d/
RUN apt-get update
RUN apt-get install -y locales
RUN apt-get clean
RUN rm -rf /var/lib/apt/lists/*
RUN sed -i -E 's/# (ja_JP.UTF-8)/\1/' /etc/locale.gen && locale-gen
ENV LANG ja_JP.UTF-8
CMD ["mysqld", "--character-set-server=utf8", "--collation-server=utf8_unicode_ci"]

MySQL Dockerfile

・my.cnf

[mysqld]
character-set-server=utf8

my.cnf

https://dev.mysql.com/doc/refman/5.7/en/option-files.html

・docker-compose.yaml

version: "3.6"
services:
  mysql:
    build:
      context: ./mysql
      # MySQL用Dockerfileの配置パス
      dockerfile: .
    ports:
      - 3306:3306
    volumes:
      # データ永続化 MySQLの内容を./dataディレクトリに保持します。
      - ./data:/var/lib/mysql
    environment:
      MYSQL_ROOT_USER: root
      # Rootユーザーを、パスワードなしでMySQLへのログインを許可します。
      MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
      # MySQLのRootユーザーのパスワードを設定する場合は、
      # MYSQL_ALLOW_EMPTY_PASSWORDをコメントアウトし、MYSQL_ROOT_PASSWORDでパスワードを指定します。
      # MYSQL_ROOT_PASSWORD: root
      # Database名称の指定
      MYSQL_DATABASE: test_db
      # 作業用MySQLユーザー名称の指定
      MYSQL_USER: test_db_docker
      # 作業用MySQLユーザーパスワードの指定
      MYSQL_PASSWORD: test_db_docker_pass

docker-compose.yaml mysql


docker-compose 起動・終了

まず、dockerが実行可能な状態であることを確認します。

dockerhub

docker version docker-compose version

・コンテナ・ビルド・起動

docker-compose up -d --build

docker-compose up -d --build MySQL

docker-compose ps

・接続確認

試しにMySQL Workbenchで接続してみようと思います。
https://www.mysql.com/jp/products/workbench/

用意した設定ファイルの内容ですと、以下の内容で接続できると思います。

試しにTest Connectionボタンで接続テストを行い、

Successfullyと出れば問題ありません。

docker-compose WorkBench

何もSQLを実行していないのでテーブルは存在しませんが、

docker-compose.yamlで指定したデータベースは存在します。

docker-compose WorkBench

ユーザーもrootやdocker-compose.yamlで指定したユーザーのみ存在していました。

docker-compose WorkBench

・コンテナ・終了

docker-compose down -v

docker-compose down -v


以上となります。

MySQLのコンテナだけの起動ですので、docker-composeを利用しなくてもよかったのですが、

他のコンテナと一緒に利用したくなった時にdocker-composeを使うと思いますので、

docker-composeを利用してみました。

都内でエンジニアをやっています。 2017年に脱サラ(法人設立)しました。 仕事で調べたことや、気になったことをメモしています。
投稿を作成しました 171

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る