IT技術で仕事を減らしたい!

ITエンジニアのメモ+α

Docker MySQLの環境構築(その1)

どうも、nippa です。

テスト用の MySQL 環境が必要になり、Docker で準備したいと思います。

Docker mysql を参考にしています。

dockerhub mysql

環境

Docker のインストール

Docker のインストールは、公式サイトからインストーラーをダウンロードしてインスト ールします。

Docker 公式: Docker Desktop

詳しくはこちらの記事を確認ください。

Docker + MySQL の構築

構築の流れは以下の通りです。

  1. MySQL の Docker のイメージをダウンロード
  2. Dockerfile の作成

1. Docker のイメージをダウンロード

Docker のコアとなる image をダウンロードします。

docker image pull [image name]

# 今回は mysql 5.7
docker image pull mysql:5.7

ダウンロードしたイメージの確認

docker image ls

# 結果
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
mysql        5.7       8b43c6af2ad0   2 days ago    448MB

2. Dockerfile の作成

Dockerfile を作成します。

設定としては以下の通りです。

ここではファイル名はdockerfileとしています。

FROM mysql:5.7

# Time Zone
ENV TZ Asia/Tokyo

RUN apt update

3. Dockerfile からイメージ作成

Docker image を Dockerfile からビルドします。

# イメージ名を指定して Docker imageのビルド
docker build -t [image name] .

# image名を mysqlとして作成
docker build -t mysql .

イメージが作成されていることを確認します。

docker images

REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mysql        latest    d5986516c257   8 seconds ago   466MB

mysqlという名でイメージが作成されています。

4. 作成したイメージから container を起動

container nameimage nameを指定してコンテナを起動します。

起動時のオプションでパスワード、Listen ポートを指定します。

docker run --name mysql -e MYSQL_ROOT_PASSWORD=[password] -d mysql

MYSQL_ROOT_PASSWORDで root のパスワードを指定します。

コンテナの起動を確認します。

docker ps

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
7fd13e8b80f4   mysql     "docker-entrypoint.s…"   4 seconds ago   Up 3 seconds   3306/tcp, 33060/tcp   mysql

上記の出力がされればコンテナ名:mysql で起動しています。

5. MySQL にアクセス

以下のコマンドで コンテナ内にアクセスして、mysql のデータベースにログインします 。

docker exec -it mysql mysql -u root -p
Enter password: [MYSQL_ROOT_PASSWORDで指定したパスワードを入力]

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

6. MySQL コンテナの停止と削除

コンテナ名を指定してコンテナを停止・削除を行います。

# コンテナの停止
docker stop mysql

# コンテナの削除
docker rm mysql

感想

今回、mysql を docker で起動しました。

docker-compose を利用したり、外部からのアクセス設定を次回はしていきたいと思いま す。

ではでは、また次回。