以前にも紹介しました: docker (一般的なアプリケーションのデプロイ): docker deploy nginx Dockerはmysql:5.7.26をデプロイします# イメージをダウンロード docker pull mysql:5.7.26 # イメージを表示する docker images|grep mysql # コンテナイメージを起動します。/usr/local/workspace/mysql で次の docker run コマンドを実行することをお勧めします: docker run -p 13306:3306 --name my-mysql -v $PWD/conf:/etc/mysql -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26 # パスをハードコードすることをお勧めします docker run -p 13306:3306 --name my-mysql -v /usr/local/workspace/mysql/conf:/etc/mysql -v /usr/local/workspace/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26 コマンドの説明: -p 13306:3306 はコンテナのポート 3306 をホストのポート 3306 にマッピングします。 --name my-mysql コンテナは起動後にmy-mysqlという名前になります -v $PWD/conf:/etc/mysql は、ホストの現在のディレクトリにある conf/ ディレクトリをコンテナの /etc/mysql にマウントします (conf ディレクトリは mysql の設定ファイルなので、マウントされていなくても問題ありません) -v $PWD/logs:/logs は、ホストの現在のディレクトリの下の logs ディレクトリをコンテナの /logs にマウントします (logs ディレクトリは MySQL のログ ディレクトリであり、マウントされていない場合は効果がありません) -v $PWD/data:/var/lib/mysql は、ホストの現在のディレクトリにあるデータ ディレクトリをコンテナの /var/lib/mysql にマウントします (データ ディレクトリは、mysql 用に設定されたデータ ファイルのストレージ パスです。データを格納するためにマウントすることをお勧めします。コンテナがシャットダウンされた場合、データを再度マウントできます)。 -e MYSQL_ROOT_PASSWORD=123456 ルートユーザーのパスワードを初期化する コンテナの起動ステータスを確認する[xxx@xxx-xx-xxx mysql]# docker ps|grep mysql 5291ed3fe987 mysql:5.7.26 "docker-entrypoint.s?? 5 分前 5 分前に起動 33060/tcp、0.0.0.0:13306->3306/tcp my-mysql mysqlコンテナに入る# コンテナにログイン [root@cbov10-sso55-xxx ~]# docker exec -it my-mysql bash ルート@5291ed3fe987:/# ls bin dev entrypoint.sh ホーム lib64 メディア opt root sbin sys usr docker-entrypoint-initdb.d などを起動し、lib logs、mnt proc、srv tmp var を実行する # ログイン mysqlroot@5291ed3fe987:/# mysql -uroot -p --default-character-set=utf8 パスワードを入力してください: MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは2です サーバーバージョン: 5.7.26 MySQL コミュニティサーバー (GPL) Copyright (c) 2000, 2019, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> データベースを表示します。 +--------------------+ | データベース | +--------------------+ | 情報スキーマ | |mysql | | パフォーマンススキーマ | |システム| +--------------------+ セット内の 4 行 (0.00 秒) MySQLへのリモートログインを設定するmysql> mysqlを使用する テーブル名と列名の補完のためのテーブル情報の読み取り -Aでこの機能をオフにすると起動が速くなります。 データベースが変更されました mysql> ユーザーからホスト、ユーザーを選択します。 +-----------+---------------+ | ホスト | ユーザー | +-----------+---------------+ | % | ルート | | ローカルホスト | mysql.セッション | | ローカルホスト | mysql.sys | | ローカルホスト | ルート | | ローカルホスト | テスト | +-----------+---------------+ セット内の行数は 5 です (0.00 秒) # どこからでもリモートでログインし、すべてのライブラリに対するすべての操作権限を持つように root ユーザーを設定します。(攻撃対象領域が広すぎるため、企業はこれを実行しないでください。) これはテスト用です。 mysql> GRANT OPTION を使用して、'123456' で識別される 'root'@'%' に *.* のすべての権限を付与します。 クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) # 権限を更新mysql> FLUSH PRIVILEGES; クエリは正常、影響を受けた行は 0 行 (0.00 秒) # mysqlを終了 mysql>終了 さよなら MySQLの認証に関しては、Baiduで自分で検索することができます。ここに推奨事項があります mysql 権限管理 MySQL 権限制御 リモートログインテストデータベース接続ツールを使用して、ホスト IP とホストによって公開されているポートに接続します。 先ほどコンテナを起動したとき、-p13306:3306はホストポート13306がコンテナのポート3306にマッピングされていることを示しています。ホスト、つまりサーバーのIPアドレスが10.10.10.11の場合、 10.10.10.11:13306 に接続されたデータベースが接続されるはずです。次のように、テスト用に新しいテストデータベースを作成することをお勧めします。 Docker、MySQL 再起動の問題 (データは失われますか?)# コンテナを表示 [root@cbov10-sso55-113 mysql]# docker ps | grep mysql 5291ed3fe987 mysql:5.7.26 "docker-entrypoint.s?? 4 時間前 4 時間前にアップ 33060/tcp、0.0.0.0:13306->3306/tcp my-mysql # コンテナを停止します (5291ed3fe987 は mysql コンテナ ID です) [root@cbov10-sso55-113 mysql]# docker stop 5291ed3fe987 5291ed3fe987 # コンテナを削除 [root@cbov10-sso55-113 mysql]# docker rm 5291ed3fe987 5291ed3fe987 元のマウントディレクトリに移動して確認します マウントホストディレクトリは/usr/local/workspace/mysqlです。 [root@cbov10-sso55-xxx mysql]# cd data/ [root@cbov10-sso55-xxx データ]# ls auto.cnf ca.pem クライアントキー.pem ibdata1 ib_logfile1 パフォーマンススキーマ 公開キー.pem サーバーキー.pem テスト ca-key.pem クライアント証明書.pem ib_buffer_pool ib_logfile0 mysql プライベートキー.pem サーバー証明書.pem sys データファイルはまだ残っています!再実行しましょう # ディレクトリはマウントされたホストディレクトリと一致している必要があります。 最初に /usr/local/workspace/mysql で実行したコマンドも今回同じディレクトリにある必要があります。 # もちろん、固定パス [root@cbov10-sso55-xxx mysql] と書いても問題ありません。# docker run -p 13306:3306 --name my-mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26 74c91431533ebb9bbfd3a1123b3f910f54770a08ad08c3c37cbbb996d29e0428 # ここでコンテナ ID が変更されたことがわかります [root@cbov10-sso55-xxx mysql]# docker ps |grep mysql 74c91431533e mysql:5.7.26 "docker-entrypoint.s?? 16 秒前 15 秒前に起動 33060/tcp、0.0.0.0:13306->3306/tcp my-mysql # コンテナに入る [root@cbov10-sso55-xxx mysql]# docker exec -it bash 74c91431533e エラー: そのようなコンテナはありません: bash [root@cbov10-sso55-xxx mysql]# docker exec -it 74c91431533e bash ルート@74c91431533e:/#mysql -u ルート -p パスワードを入力してください: MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは2です サーバーバージョン: 5.7.26 MySQL コミュニティサーバー (GPL) Copyright (c) 2000, 2019, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> データベースを表示します。 +--------------------+ | データベース | +--------------------+ | 情報スキーマ | |mysql | | パフォーマンススキーマ | |システム| | テスト | +--------------------+ セット内の行数は 5 です (0.00 秒) テストデータベースもそこにあることがわかりました。 MySQL コンテナを削除する前と削除した後のデータファイルのサイズも確認できます。読者は自分で試してみることができます。 ホストファイルが適切に保存されていれば、データは失われません。 例: 実際、本番環境はこのテストよりもはるかに複雑です。MySQL クラスタ、マスタースレーブ、データ同期、ネットワークなどの問題を Docker で解決するのは本当に困難です。 MySQL コンテナの管理やステートフル アプリケーションの管理には、より洗練されたツールである有名な Kubernetes プロジェクトが必要です。 推薦する Docker公式サイト Kubernetes公式サイト これで、docker deploying mysql (docker deploying common applications) に関するこの記事は終了です。docker deploying mysql に関するその他の関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
目次01 CM 02 エントリーポイント03 ワークディレクトリ04 環境05 ユーザー06巻07 ...
目次1. コンストラクタとインスタンス2. プロパティプロトタイプ3. プロパティ __proto_...
準備1. 環境の説明:オペレーティング システム: Windows Server 2019 PHP ...
目次1. 実行コンテキストとは何か2. 実行コンテキスト スタックとは何ですか? 3. 実行コンテキ...
Hyper-V を展開するためのハードウェア要件は次のとおりです。 64 ビット プロセッサ、具体...
ドキュメントはしばらく前から書いていましたが、アップロードする勇気がありませんでした。サーバーのセキ...
ソケットオプション機能機能: ソケットファイル記述子の属性の読み取りと設定に使用されるメソッド #i...
毎日の統計情報を取得するプロジェクトを実行する際、プロジェクト ログを分析する必要があります。要件の...
序文WEB 開発では、クロスドメイン リクエストが頻繁に発生します。クロスドメインの問題を解決する方...
目次MVCCとはMVCC 実装MVCC はファントム リードを解決しますか? MVCCとはMVCC ...
先週、先生が私に数字当てゲームをするちょっとした宿題を出しました。とても面白いと思ったので、適当に書...
目次1. シナリオ2. 基盤となるAPIを簡素化する2.1 自動的に破棄を呼び出す2.2 VM値を作...
概要この記事は、ゲームビジネスアーキテクチャに関連するコンテンツの紹介から始まります。ゲームビジネス...
序文scp は secure copy の略です。scp は、Linux システムの ssh ログイ...
序文HTTP はステートレスな通信プロトコルです。各リクエストは互いに独立しており、サーバーは以前の...