この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
本日はAmazon linux2インスタンスにDockerでMysqlコンテナ起動手順を紹介します。
事前条件
- EC2インスタンス作成済
- 上記のインスタンスにDockerをインストール済
前回ブログ参照:https://cloud5.jp/amazon-linux2-docker-install/
準備作業
- EC2ホストに下記のフォルダを作成する。
#mysql管理用フォルダ mkdir mysql #データ永続化用フォルダ mkdir mysql/datadir #初期データ投入用フォルダ mkdir mysql/initdb
- 下記の内容でデータ初期化用SQLファイルを作成する。".mysql/initdb/init.sql"
--ダータベース作成 create database testdb; --テーブル作成 create table testdb.user (id int,name varchar(256)); --テストデータ作成 insert into testdb.user values(1,'ユーザー1'); insert into testdb.user values(2,'ユーザー2'); insert into testdb.user values(3,'ユーザー3');
DockerでMysqlコンテナ起動
- イメージダウンロード
#イメージファイルをプルする sudo docker pull mysql:5.7.33 #イメージを確認する sudo docker images
2. コンテナ起動
#MySQLコンテナを起動する #パラメータ説明: #右記のパラメータでデータ永続化用フォルダをマウントする :-v /home/ec2-user/mysql/datadir:/var/lib/mysql #右記のパラメータで初期データ投入用フォルダをマウントする :-v /home/ec2-user/mysql/initdb:/docker-entrypoint-initdb.d sudo docker run --restart=always -it --name mydb -v /home/ec2-user/mysql/datadir:/var/lib/mysql -v /home/ec2-user/mysql/initdb:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=test1234 -d mysql:5.7.33 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #コンテナを確認する sudo docker ps -a
確認
- ホストでデータ永続化用フォルダの確認
ls -l mysql/datadir
- 初期データ投入確認
#コンテナのBashセッションを開始します。 sudo docker exec -it mydb bash -p #mysqlに接続する > mysql -u root -p -h 127.0.0.1 > Enter password: mysql > mysql > show databases; mysql > use testdb; mysql > select * from user; mysql > insert into testdb.user values(4,'永続化確認用'); mysql > exit >exit
- OS再起動、コンテナの自動起動とデータ永続化確認
#Linux OSを再起動する sudo reboot sudo docker ps -a sudo docker exec -it mydb bash -p mysql -u root -p -h 127.0.0.1 > Enter password: > mysql > use testdb; mysql > select * from user;