どうも、nippa です。
テスト用の MySQL 環境が必要になり、Docker で準備したいと思います。
Docker mysql を参考にしています。
環境
Docker のインストール
Docker のインストールは、公式サイトからインストーラーをダウンロードしてインスト ールします。
詳しくはこちらの記事を確認ください。
Docker + MySQL の構築
構築の流れは以下の通りです。
- MySQL の Docker のイメージをダウンロード
- 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 name
とimage 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 を利用したり、外部からのアクセス設定を次回はしていきたいと思いま す。
ではでは、また次回。