ホームページ 運用・保守 Docker データベースが Docker やコンテナ化に適さない理由

データベースが Docker やコンテナ化に適さない理由

Apr 15, 2020 am 10:01 AM
docker コンテナ化 データベース

データベースが 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

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

中国のDocker画像ソースを変更する方法 中国のDocker画像ソースを変更する方法 Apr 15, 2025 am 11:30 AM

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

Dockerバージョンを読む方法 Dockerバージョンを読む方法 Apr 15, 2025 am 11:51 AM

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

Dockerでミラーを作成する方法 Dockerでミラーを作成する方法 Apr 15, 2025 am 11:27 AM

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

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

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

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

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

Dockerによるプライベートリポジトリを構築する方法 Dockerによるプライベートリポジトリを構築する方法 Apr 15, 2025 am 11:06 AM

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

docker lnmpの呼び方 docker lnmpの呼び方 Apr 15, 2025 am 11:15 AM

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

See all articles