【Docker】docker-composeでMySQL環境を作ろう

【Docker】docker-composeでMySQL環境を作ろう

はじめに

コジマです。

ここでやること

  • docker-compose.ymlをつくる
  • docker-composeコマンドでコンテナを起動する
  • A5M2でDBに接続

前提

  • dockerおよびdocker-composeはインストール済み
  • OSはWindows 10 Pro

docker-compose.ymlをつくる

C:\work\dockerの下にdocker-compose.ymlを作りましょう。

version: '3.8'
services:
  mysql:
    image: mysql:8.0
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw
      MYSQL_DATABASE: mydb
    ports: ["3306:3306"]

簡単に解説

version: docker-composeのファイルフォーマット。自身の環境でどのバージョンにするかは以下リンク参照
https://matsuand.github.io/docs.docker.jp.onthefly/compose/compose-file/
services:
  mysql: サービス名。「docker-compose up -d XXX」の「XXX」
    image: 使用するイメージ。ここではmysql8.0のイメージ
    container_name: コンテナ名。「docker ps」の「NAMES」に表示されるやつ。
    restart: 自動的に再起動するかどうかの設定。ここでは「always」として自動起動を有効にした。細かくは以下リンク参照
https://docs.docker.com/engine/reference/run/#restart-policies---restart
    environment:
      MYSQL_ROOT_PASSWORD: rootユーザのパスワード。
      MYSQL_DATABASE: イメージ立ち上げたときに作るデータベース名。今はこだわってないので「mydb」としてみた
    ports: ["ホスト側のポート:コンテナ側のポート"]という形で書く。配列ぽく書くのがポイント

docker-composeコマンドでコンテナを起動する

powershellで以下のコマンドを実行

cd C:\work\docker
docker-compose up -d mysql

ちゃんと起動した確認

docker ps

こんな感じで出てくればOK

CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS         PORTS                               NAMES       
XXXXXXXXXXXXX   mysql:8.0   "docker-entrypoint.s…"   41 minutes ago   Up 2 minutes   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql   

A5M2でDBに接続

A5M2を起動し、「データベースの追加と削除」から「追加」=>「MySQL/MariaDB」を選択すると以下の画面になる。

docker-compose.ymlで設定した「my-secret-pw」を入れてテスト接続して「接続に成功しました」と出ればOK。(デフォの接続先mydbにすればよかった)

さいごに

MySQLを選んだ理由はシェアが大きいのと多少は覚えておきたかったからです。

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

以上、コジマでした。


Dockerカテゴリの最新記事