昨日プロジェクトを書いていた時に、MySQL の派生版である Percona を使う必要があったので、Docker を使ってインストールしたいと思いました。結果、一晩中泥沼にはまり込んでしまい、今朝ようやく解決しました。ここで記録しておきます。 プル後、docker imagesと入力してすべてのイメージを表示すると、表示は正常になります。 次に、次のコマンドでコンテナを作成します (実行時に改行を使用しないでください)。 docker create --name percona -v /data/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:lates このコマンドは、percona という名前のコンテナを作成し、ローカルの /data/mysql-data ディレクトリを docker コンテナの /var/lib/mysql ディレクトリにマップしてポート 3306 を指定し、データベースのルート ユーザーのパスワードを root に設定し、最後の percona:latest で上記で取得したバージョンを指定することを意味します。 docker コンテナ内のデータベースは単なるミラーなので、実際には存在しないことがわかります。これをローカル ディレクトリにマッピングする目的は、docker によって /var/lib/mysql ディレクトリに保存されたデータを同期して、ローカルの /data/mysql-data ディレクトリに保存できるようにすることです。これにより、データが失われることがなくなり、ローカル操作が容易になります。 コマンドパラメータがわからない場合は、公式ドキュメントを読むか、説明のあるdockerビデオチュートリアルを検索してください。次に、このコンテナを起動します(docker start percona)。起動後、実行中のすべてのコンテナをdocker psで照会すると、問題が発生します。 空です。つまり、実行中のコンテナは見つかりません... 次に、実行中のコンテナと実行されていないコンテナを含むすべてのコンテナをチェックしました。 docker ps -a は次のように表示します。 ポートが正常にバインドされなかったため、実行されなかったことが判明しました。実行されるたびに自動的に終了しました。 このとき、docker ログを確認し、docker logs container id コマンドを入力すると、次のように表示されました。 注: ここでの 71 は、このコンテナの container_id の最初の 2 桁です。Docker はこの簡略化された記述をサポートしています。 ログ エラーには、コンテナ内の /var/lib/mysql ディレクトリを作成して書き込む権限がないことが示されています。 docker run -ti --rm --entrypoint="/bin/bash" percona -c "whoami && id" このコマンドはコンテナの所有者を表示するために使用され、次のように表示されます。 次に、次のように入力します (改行なし): docker run -ti --rm -v /data/mysql-data:/var/lib/mysql --entrypoint="/bin/bash" percona -c "ls -la /var/lib/mysql" このコマンドは、ローカル データ ボリュームをマッピングするときに、このディレクトリの所有者を表示するために使用されます。 これが理由です。mysql ユーザーが docker 内のディレクトリにアクセスすると、権限エラーが報告されるのはそのためです。ローカル マッピング ディレクトリの所有者は root ユーザーであり、docker コンテナ内の /var/lib/mysql ディレクトリの所有者は uid が 999 の mysql ユーザーであるためです。 問題は解決しました! 一晩中無駄にしました。Linux の権限制御に関する知識を深める必要があると言わざるを得ません! Docker がコンテナを作成する際のディレクトリ権限の落とし穴についての記事はこれで終わりです。Docker がコンテナを作成する際のディレクトリ権限についての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Centos6.6 で php7 + nginx 環境をインストールする方法
整合性制約整合性制約はテーブル データの正確性を保つためのものです。データが正しくない場合は、そもそ...
目次1. 存在する1.1 説明1.2 例1.3 交差/2017-07-21 2. 除く2.1 説明2...
背景go-fastdfs は、http プロトコルをサポートする分散ファイルシステムです。一般的なプ...
コードを書くのに 30 分かかりましたが、この HTML5 Canvas New Year Fire...
MySQL スロー ログは、MySQL DBA やその他の開発および運用担当者が細心の注意を払う必要...
序文この記事では、mysqld プロセスをシャットダウンするプロセスと、MySQL インスタンスを安...
目次1. 概要2. オブジェクト作成のパラメータ3. 監視例4. 使用方法5. ソースコード1. 概...
私はフロントエンド プロジェクトの開発に常に vscode を使用してきたため、現在ではいくつかの小...
目次序文型推論真理値の絞り込み平等の縮小演算子の絞り込みインスタンスの絞り込み狭まりの本質ユニオン型...
序文モバイル デバイスでは、帯域幅とプロセッサ速度の制限により、Web ページのパフォーマンスに対す...
1. 対象環境Windows 7 64ビット2. 材料(1)VC++2010リリースパッケージ(64...
目次導入クッキークッキーとはクッキー生成方法クッキーの適用シナリオクッキーのデメリット回避策ローカル...
この実験のテスト環境: Windows 10+cmd+MySQL5.6.36+InnoDB 1. ト...
目次Dockerコンテナのデータ量データボリュームの使用方法1: コマンド-vを使用して直接マウント...
1. コマンド > と >> の違いコマンド>: ファイルが存在する場合は、...