システムの初期のパーティション分割により、オペレーティング システム内の対応する / パーティションは大きくなりすぎず、/var ディレクトリは個別にパーティション分割されません。 Docker サービスを実行すると、長期間使用すると、元々大きかったパーティションがだんだんと不足してきます。この問題にもっとうまく対処するにはどうすればよいでしょうか? 1. ソフトリンクを使用するオペレーティング システムでは、デフォルトでは Docker コンテナの保存場所は /var/lib/docker ディレクトリの下にあることがわかっています。次のコマンドで具体的な場所を確認できます。 #デフォルトの保存場所$ sudo docker info | grep "Docker Root Dir" デフォルトのストレージ容量が不足している問題を解決する最も直接的かつ効果的な方法は、このディレクトリに新しいパーティションをマウントすることです。ただし、元のシステム スペースが変更されていない場合は、ソフト リンク方式を採用してイメージとコンテナーのストレージ パスを変更し、同じ目的を達成します。 # Dockerサービスを停止します $ systemctl restart docker # Dockerサービスを停止します $ service docker stop 次に、/var/lib/docker ディレクトリ全体を、スペースをあまり占有しない宛先パスに移動します。この時点で Docker を起動すると、ストレージ ディレクトリは /var/lib/docker ディレクトリのままですが、実際にはデータ ディスク /data/docker に保存されていることがわかります。 # 元のコンテンツを移動する $ mv /var/lib/docker /data/docker # リンク $ ln -sf /data/docker /var/lib/docker 2. コンテナの起動パラメータを指定する設定ファイルで、コンテナの起動パラメータ --graph=/var/lib/docker を指定して、イメージとコンテナのストレージ パスを指定します。 Docker の構成ファイルでは、バックグラウンド プロセスのパラメータのほとんどを設定できますが、その保存場所はオペレーティング システムごとに異なります。 Ubuntu での場所は /etc/default/docker ファイルで、CentOS での場所は /etc/sysconfig/docker ファイルです。 # CentOS6 # Ubuntu はデフォルトで selinux メカニズムを有効にするため OPTIONS=--graph="/data/docker" --selinux-enabled -H fd:// # CentOS7 # docker.service ファイルを変更し、-g パラメータを使用して保存場所を指定します $ vi /usr/lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd --graph /新しいパス/docker #ウブントゥ # Ubuntu はデフォルトで selinux メカニズムを有効にしないため OPTIONS=--graph="/data/docker" -H fd:// 再起動後、Docker パスは /data/docker に変更されます。 # 設定ファイルを再読み込みします $ sudo systemctl daemon-reload # docker サービスを再起動します $ sudo systemctl restart docker.service Docker バージョンが 1.12 以上の場合は、daemon.json ファイルを変更したり、新しいファイルを作成したりできます。変更は Docker サービスを再起動せずにすぐに有効になります。 # 設定ファイルを変更する $ vim /etc/docker/daemon.json { 「レジストリミラー」: ["http://7e61f7f9.m.daocloud.io"], "グラフ": "/新しいパス/docker" } 3. システムの下に設定ファイルを作成する/etc/systemd/system/docker.service.d ディレクトリにドロップイン ファイル docker.conf を作成します。デフォルトでは、docker.service.d フォルダーは存在しないため、最初に作成する必要があります。 Drop-In ファイルを作成する理由は、Docker サービスが docker.conf ファイルに記載されている特定のパラメータを使用し、/lib/systemd/system/docker.service ファイル内のデフォルト サービスによって使用されるパラメータを上書きするためです。 # 新しい保存場所を定義する $ sudo vi /etc/systemd/system/docker.service.d/docker.conf [サービス] ExecStart=/usr/bin/dockerd --graph="/data/docker" --storage-driver=devicemapper 保存して vim エディターを終了します。/data/docker は新しいストレージの場所で、devicemapper は現在 Docker で使用されているストレージ ドライバーです。ストレージ ドライバーが異なる場合は、最初の手順で確認して書き留めた値を入力します。これで、サービス デーモンをリロードして Docker サービスを開始できます。これにより、新しいイメージとコンテナーが保存される場所が変更されます。すべてが正常に実行されたことを確認するには、docker info コマンドを実行して Docker ルート ディレクトリを確認します。 # 設定ファイルを再読み込みします $ sudo systemctl daemon-reload # dockerサービスを再起動します $ sudo systemctl start docker Docker イメージのデフォルトの保存場所を変更する方法についての記事はこれで終わりです。Docker イメージのデフォルトの保存場所の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL で高性能なインデックスを作成するための完全な手順
>>: JavaScript スコープチェーンの基本原理のグラフィカルな説明
Raspberry Pi モデルは 4b、1G RAM です。システムはubuntu19.10サーバ...
初めてDockerを使用してイメージをローカルにパッケージ化してデプロイするまず、私のラップトップシ...
Vue に限定されず、他の種類の SPA プロジェクトにも当てはまる問題がいくつかあります。 1....
現在、ほとんどの CPU は浮動小数点ユニット (FPU) をサポートしています。FPU は、プロセ...
目次1. オペレーター要約する1. オペレーター演算子は、代入、比較、算術演算などの機能を実装するた...
導入MySQL には、SELECT ステートメントを分析し、開発者が最適化できるように SELECT...
今日、null 値をテストしていたところ、小さな問題が見つかりました。ここに記録しました。以前にも遭...
1 はじめにKong は単純な製品ではありません。この記事で言及されている Kong は主に Kon...
目次導入1. one-click.jsとは2. パッケージングツールはどのように機能しますか? 3....
2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...
序文var は ES5 における変数宣言方法です。var で変数を宣言するとループ変数がグローバル変...
目次JavaScriptでは、通常、次のコードのようにクラスを簡単に定義できます。 var サンプル...
導入MySQL InnoDB エンジンがレコードをクエリし、インデックス カバレッジを使用できない場...
CSS を導入する方法には、インライン スタイル、内部スタイル シート、外部スタイル シートの 3 ...
最近、Bootstrap を使って Web サイトを開発しています。表を処理していたところ、PC で...