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 解凍バージョンのインストール グラフィック チュートリアル

推薦する

MySQL 8.0.18 インストール構成の最適化チュートリアル

MySQLのインストール、設定、最適化は参考用です。具体的な内容は次のとおりです。 MySQL ダウ...

フォームアクションとonSubmitの例

まず、action はフォームの属性です。HTML5 では必須の属性値として定義されています。onS...

フォーム送信時に追加のパラメータを渡すためのいくつかの一般的な方法

フォームを送信するときに、送信前に追加のパラメータが追加される状況が発生する場合があります。この問題...

Centos7にGitLabサーバーをインストールして展開する方法

私はここでCentOS 7 64ビットシステムを使用しています。CentOS 64ビットシステムを試...

表に斜めヘッダー効果を出す5つの方法

誰もがテーブルをよく知っているはずです。コード内でよく見かけます。テーブルにスラッシュ ヘッダーを追...

CocosCreator クラシック エントリー プロジェクト flappybird

目次開発環境ゲームエンジンのコンセプトCocos Creatorについてプロジェクト構造コード編集環...

Dockerコンテナのログ処理の詳細な説明

Docker には多くのログ プラグインがあります。デフォルトでは json-file を使用します...

Centos7でglibcをアップグレードするとシステム異常(起動できない)になる場合の解決方法

目次問題の原因:解決:解決:私は Centos7 を使用しています (理論的にはこの方法は Cent...

CSS BEM 記述標準の詳細な説明

BEM は、Web 開発に対するコンポーネントベースのアプローチです。ユーザー インターフェイスを独...

VMWare ネットワーク アダプタの 3 つのモードの実装プロセスの分析

3つのモードブリッジ(ブリッジ モード)、NAT(ネットワーク アドレス変換モード)、ホストオンリー...

ウェブサイト標準の検証方法を通じてFlashページを共有する方法

1. 埋め込みは違法です<embed> タグは Netscape のプライベート タグで...

Vueページの初回読み込み最適化の全プロセス

目次序文1. 画像の最適化2. .mapファイルの生成を無効にする3. ルーティングの遅延読み込み4...

Dockerはローカルイメージをパッケージ化し、他のマシンに復元します

1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...

CSS3のtext-fill-colorプロパティの詳細な説明

text-fill-color とは何を意味しますか?文字通りの意味から言えば、「テキストの塗りつぶ...

MySQLチュートリアルではストアドプロシージャを徹底的に理解します

目次1. ストアドプロシージャに関連する概念2. ストアドプロシージャの使用1) ストアドプロシージ...