Docker を使用した MySQL のデプロイの詳細説明 (データ永続化)

Docker を使用した MySQL のデプロイの詳細説明 (データ永続化)

この記事では、Docker を使用して MySQL をデプロイし、データを保持する方法について簡単に説明します。tutum-docker-mysql プロジェクトを使用して MySQL サーバーを構築し、Dockerfile を書き直す時間を節約します。

まず、tutum-docker-mysql を実行します。

docker run -d -p 3306:3306 --name mysql tutum/mysql

tutum/mysqlイメージがローカルにない場合は、Dockerはまずそのイメージをダウンロードします。このステップには時間がかかる場合があります。実行が完了したら、次のようになっていることを確認します。

tutum-docker-mysql はアクセスするためのランダムなパスワードを自動的に作成します。これはログを通じて確認できます。

ログ内のパスワードを使用してmysqlにログインします

mysql -uadmin -pi6k5USp9Km9G -h127.0.0.1

理論的には、この時点で MySQL に正常にログインしています。データベースとテーブルを作成して終了できます。ただし、コンテナを停止して再起動すると、データは失われます。実際にデータを保存するにはどうすればよいでしょうか?

解決策は、ローカル ファイルをコンテナーにマウントすることです (データベース ファイルを保存するために、ホストからコンテナーにローカル フォルダーをマウントします)。

まず、前のコンテナを停止します

docker 停止 mysql

ローカルのマウント可能なパスを指定して、tutum-docker-mysql を再起動します。コンテナ内の /var/lib/mysql ディレクトリにマウントされる /home/walter/softwares/tutum-docker-mysql/data を指定します (-v ボリュームをバインドマウント)。このようにして、ホストのディレクトリにデータを永続化できます。

sudo docker run -d -p 3306:3306 -v /home/walter/softwares/tutum-docker-mysql/data:/var/lib/mysql -e MYSQL_PASS="mypass" tutum/mysql

上記で起動したときに、パスワードを mypass として指定して作成しました。次に、MySQL にログインしてデータを作成し、保存されるかどうかを確認してみましょう。

シェル>mysql -uadmin -pmypass -h127.0.0.1
mysql>データベーステストを作成します。

mysqlを終了し、コンテナを再起動します。実行した操作は保持されます。mysqlを起動するたびに、次のコマンドを使用できます。

docker run -d -p 127.0.0.1:3306:3306 -v /home/walter/softwares/tutum-docker-mysql/data:/var/lib/mysql tutum/mysql

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerはデータの永続性を実現するためにMySQLをマウントします

<<:  Nodejs がイントラネット侵入サービスを実装

>>:  Windows 10 での MySQL 8.0.12 解凍バージョンのインストール グラフィック チュートリアル

推薦する

Centos7.3は起動時に自動的に起動または指定されたコマンドを実行します

Centos7では、/etc/rc.d/rc.localファイルの権限が削減されており、実行権限があ...

MySQL よく使われる関数の詳細な概要

目次MySQL 共通関数1. 数値関数文字列関数3. 時間機能4. システム機能5. 集計関数MyS...

CSSレイアウトにおけるフロート属性と位置属性の違い

CSS レイアウト - position プロパティposition 属性は、要素に適用する配置方法...

202 無料の高品質 XHTML テンプレート (1)

ここで 123WORDPRESS.COM はこれらのテンプレートの最初の部分を紹介します。各テンプレ...

WeChatアプレットの世界的な状況の詳細な説明

序文WeChat アプレットでは、App.js の globalData を中間ブリッジとして使用し...

MySQL デッドロック シナリオ例の分析

序文最近、MySQL で RR レベルでデッドロック問題に遭遇しました。興味深いと思ったので、調べて...

MySQL ステートメントに一重引用符またはバックスラッシュを含む値を挿入する方法

序文この記事では主に、シングルクォートやバックスラッシュを含む値を挿入するMySQLステートメントに...

Nginx リバース プロキシを使用して go-fastdfs を実行する例

背景go-fastdfs は、http プロトコルをサポートする分散ファイルシステムです。一般的なプ...

MySQL で union all を使用してユニオンソートを取得する方法

プロジェクトでは、何らかの不可逆的な理由により、テーブルに保存されたデータがページの表示要件を満たす...

JavaScriptはパスワードボックスの検証情報を実装します

この記事では、パスワードボックスの検証情報を実装するためのJavaScriptの具体的なコードを例と...

CentOS7にsshをインストールして設定する

1. openssh-serverをインストールする yum インストール -y openssl o...

JSはフロントエンドのページング効果を実現します

この記事の例では、フロントエンドのページング効果を実現するためのJSの具体的なコードを参考までに共有...

MySQLが内部一時テーブルを使用するタイミングについて簡単に説明します。

組合執行分析を簡単にするために、次のSQLを例として使用します。 テーブル t1 を作成します ( ...

Mysql5.7 のグループ連結関数を使用するときにデータが切り捨てられる問題に対する完璧な解決策

一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...

Nginx gzip設定について

nginx がリソース圧縮を実現する原理は、ngx_http_gzip_module モジュールを介...