以前にも紹介しました: 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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
3 つのテーブルが接続されています。テーブル A のフィールド a はテーブル B のフィールド b...
質問最近、以下に示すように、テキストストローク効果を実現するという要件に遭遇しました。 解決策1まず...
概要私は 1 年以上 Docker を使用しています。最近、サービスをすばやくオーケストレーションし...
MySQLサービスを停止するWindowsでは、マイコンピュータを右クリック--管理--サービスと...
HTML の再利用は、あまり話題に上らない言葉です。今日は、この問題を次のようにまとめたいと思います...
Dockerfile を使用すると、ユーザーはカスタム イメージを作成できます。基本構造Docker...
目次Linux - MyCat を使用して MySQL マスター スレーブの読み取り書き込み分離を実...
1. どのような問題に直面しましたか?標準 SQL では、通常、次の SQL 挿入ステートメントを記...
目次1. 問題の説明: 2. Jenkins設定のトラブルシューティング3. コードログのエンコード...
dl:定義一覧定義リストdt:定義タイトルタイトルを定義するdd:定義説明定義の説明dt は情報のタ...
パノラマビュー効果を見てみましょう: 住所を表示スクリーンショット: 体験してみると、周囲の環境がぐ...
ウェブ全体を検索して、さまざまな落とし穴を見つけましたが、問題は解決しませんでした。ついに自分でも分...
この記事では、シンプルな画像カルーセル効果を実現するためのJSの具体的なコードを参考までに紹介します...
1. はじめにプロジェクトではMySQLを使用しています。インターネット上の例を参考にインストール...
目次1. 接続制御プラグイン(connection_control)の紹介1.1 connectio...