DockerでMySQLを使う

2022年4月28日

ファイルの準備

Docker
└ docker-mysql
  └Docker-Compose.yml
  └ mysql
    ├ Dockerfile
    ├ my.cnf
    └ DB
      └world.sql

Docker-Compose.yml

version: "3.7"
services:
  mysql:
    build: ./mysql/    #Dockerfileからビルドすることを示す
    volumes:
      - ./mysql/db:/docker-entrypoint-initdb.d  #初期データをマウントする場所
    image: original_mysql_world # イメージの名前
    platform: linux/amd64  # M1Mac
    environment:
      - MYSQL_ROOT_PASSWORD=root   #コンテナ内のMySQLを起動する際のパスワードを設定

参考サイト http://docs.docker.jp/get-started/08_using_compose.html?highlight=mysql

Dockerfile

#使うDockerイメージ
FROM mysql

#ポートを開ける
EXPOSE 3306

#MySQL設定ファイルをイメージ内にコピー
ADD ./my.cnf /etc/mysql/conf.d/my.cnf

#docker runに実行される
CMD ["mysqld"]

my.cnf

[mysqld]
character-set-server=utf8

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

world.sql

-- MySQL dump 10.13  Distrib 5.1.51, for pc-linux-gnu (i686)
--
-- Host: 127.0.0.1    Database: world
-- ------------------------------------------------------
-- Server version       5.1.51-debug-log

/*以下Databaseの内容が記載される

構築・起動

# イメージのビルド
$ Docker-Compose build

# コンテナの作成
$ Docker-Compose up -d

# 起動したコンテナの確認
$ docker ps

# 起動したコンテナにログイン
$ docker exec -it <NAME> bash -p

# MySQLを起動
$ mysql -u root -p -h 127.0.0.1

# コンテナの終了
$ docker-compose down

# ボリュームの削除
$ docker-compose down --volumes

Docker

Posted by Next-k