データベースが Docker やコンテナ化に適さない理由
データベースが Docker やコンテナ化に適さない理由はいくつかあります:
1. データは安全ではありません
たとえそうしたいとしてもDocker データをホストに保存しても、データが失われないことは保証できません。 Docker ボリュームは、永続ストレージを提供するために Union FS イメージ レイヤーを中心に設計されていますが、それでも保証がありません。
現在のストレージ ドライバーでは、Docker の信頼性が低くなる危険性がまだあります。コンテナーがクラッシュし、データベースが適切にシャットダウンされない場合、データが破損する可能性があります。
2. データベースを実行するための環境要件
DBMS コンテナーと他のサービスが同じホスト上で実行されているのが一般的です。ただし、これらのサービスのハードウェア要件は大きく異なります。
データベース (特にリレーショナル データベース) には、より高い IO 要件があります。通常、データベース エンジンは、同時リソースの競合を避けるために専用の環境を使用します。データベースをコンテナに配置すると、プロジェクトのリソースが無駄になります。このインスタンスには多くの追加リソースを構成する必要があるためです。パブリック クラウドで 34G のメモリが必要な場合、起動するインスタンスには 64G のメモリが必要です。実際には、これらのリソースは完全には使用されていません。
それにどう対処すればよいでしょうか?レイヤーで設計し、固定リソースを使用して、異なる層で複数のインスタンスを起動できます。水平方向にスケーリングすることは、垂直方向にスケーリングするよりも常に優れています。
3. ネットワークの問題
Docker ネットワークを理解するには、ネットワーク仮想化について深く理解する必要があります。予期せぬ事態に対処する準備もしておかなければなりません。サポートや追加ツールなしでバグ修正を実行する必要がある場合があります。
4. ステート
ステートレス サービスを Docker にパッケージ化すると、コンテナーを調整し、単一障害点を解決できます。しかし、データベースはどうでしょうか?データベースを同じ環境に配置すると、データベースがステートフルになり、システム障害の範囲が大きくなります。次回アプリケーション インスタンスまたはアプリケーションがクラッシュすると、データベースに影響が出る可能性があります。
5. 追加の分離はデータベースに悪影響を及ぼします
実際、これについては 2 番目と 3 番目の理由で述べました。しかし、この事実をもう一度強調したいので、これを別の理由としてリストします。分離レベルが高くなるほど、リソースのオーバーヘッドも増加します。水平方向に簡単にスケーリングできるため、専用環境よりも多くのメリットを得ることができます。ただし、Docker の水平スケーリングはステートレス コンピューティング サービスにのみ使用でき、データベースには使用できません。
データベースには分離機能が見当たりませんが、なぜデータベースをコンテナーに入れる必要があるのでしょうか?
推奨チュートリアル: docker チュートリアル
以上がデータベースが Docker やコンテナ化に適さない理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

国内のミラーソースに切り替えることができます。手順は次のとおりです。1。構成ファイル/etc/docker/daemon.jsonを編集し、ミラーソースアドレスを追加します。 2。保存して終了した後、Docker Service Sudo SystemCtlを再起動してDockerを再起動して、画像のダウンロード速度と安定性を改善します。

Dockerバージョンを取得するには、次の手順を実行できます。Dockerコマンド「Docker -version」を実行して、クライアントバージョンとサーバーバージョンを表示します。 MacまたはWindowsの場合は、DockerデスクトップGUIのバージョンタブまたはDockerデスクトップメニューのバージョン情報を表示することもできます。

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerプライベートリポジトリを構築して、コンテナ画像を安全に保存および管理し、厳格な制御とセキュリティを提供できます。手順には、リポジトリの作成、アクセスの付与、リポジトリの展開、画像のプッシュ、および画像の引くなどがあります。利点には、セキュリティ、バージョン制御、ネットワークトラフィックの削減、カスタマイズが含まれます。

Docker LNMPコンテナコールステップ:コンテナの実行:Docker Run -D - Name LNMP -Container -P 80:80 -P 443:443 LNMPスタックコンテナIPを取得する:Docker Inspect LNMP -Container | GREP iPaddress Access Webサイト:http://< container ip>/index.phpsshアクセス:docker exec -it lnmp -container bash access mysql:mysql -u roo
