dockerコンテナの再起動後に/etc内の一部の設定ファイルがリセットされる問題を解決します

dockerコンテナの再起動後に/etc内の一部の設定ファイルがリセットされる問題を解決します

1.

コンテナ内の /etc/hosts、/etc/resolv.conf、/etc/hostname の 3 つのファイルはイメージ内に存在せず、/var/lib/docker/containers/ 内に存在します。コンテナを起動すると、これらのファイルは mount の形式でコンテナ内にマウントされます。

したがって、コンテナ内でこれらのファイルが変更された場合、変更された部分はコンテナの最上位層には存在せず、これら 3 つの物理ファイルに直接書き込まれます。

2. 再起動後に変更したコンテンツが消えてしまうのはなぜですか?

その理由は、Docker がコンテナを起動するたびに、新しい /etc/hosts ファイルが再構築されるからです。なぜでしょうか?

理由は、コンテナが再起動され、IP アドレスが変更され、hosts ファイル内の元の IP アドレスが無効になるためです。したがって、hosts ファイルを変更する必要があります。そうしないと、ダーティ データが生成されます。

3. 何か良い解決策はありますか?

docker run コマンドの --add-host パラメータを使用して、コンテナのホストと IP 間のマッピングを追加できます。

補足:Dockerコンテナで再起動設定が反映されない問題を解決する(ソース/etc/profile)

問題の説明:

Docker を使用する場合、コンテナ インスタンス内の /etc/profile などの設定ファイルをカスタマイズする必要がある場合があります。ただし、変更後は、コンテナを起動するたびに手動でソースを指定して再度有効にする必要があり、非常に面倒です。

解決:

コンテナ インスタンスで、~/.bashrc 構成ファイルの末尾に source /etc/profile を追加し、ファイルを保存して終了します。これにより、再起動後に手動操作なしで構成ファイルが自動的に更新されるようになります。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Dockerコンテナの起動失敗を解決する方法
  • Dockerスペースがいっぱいでコンテナに入れない場合の解決策
  • Docker コンテナのマウントディレクトリ操作の表示
  • docker run -v はデータボリュームを異常にマウントし、コンテナのステータスは常に再起動になります。

<<:  ウェブページ作成の基本宣言文書型記述(DTD

>>:  jQuery キャンバスで画像検証コード例を描画する

推薦する

CentOS7でパーティションのサイズを変更する方法

昨日、ある人のシステムのインストールを手伝ったのですが、自動パーティション分割をクリックするのを忘れ...

Mysql 複数データベースのバックアップ コード例

この記事は主にMysqlの複数データベースのバックアップのコード例を紹介します。この記事ではサンプル...

Docker クリーンアップ環境操作

丁寧に掃除を始めましょう!未使用ボリュームの一覧docker ボリューム ls -qf dangli...

MySQL InnoDB アーキテクチャの概要

目次導入1. MySQLデータベースの全体的なアーキテクチャSQL インターフェースパーサーオプティ...

PythonはデータベースMySQLの解凍バージョンのインストール構成に接続し、問題が発生しました

導入今日は Python でデータベースに接続する方法を学んだので、MySQL データベースをインス...

AWS無料サーバーアプリケーションとネットワークプロキシ設定チュートリアルの詳細な説明

目次予防必要条件AWSアカウントを申請する仮想マシンの申請と有効化仮想マシンを申請するセキュリティグ...

Ubuntu 20.04 オペレーティング システムの VMware インストール チュートリアル図

メモ: とにかく体験してみましょう。記録: NO.209この例の環境:仮想マシン: vmwareオペ...

Nginx のタイムドログカットの詳細な説明

序文デフォルトでは、Nginx ログはファイルに書き込まれます。各ドメインのログを区別するために、通...

CSSの高さの崩壊問題についての簡単な説明

パフォーマンス例えば: HTML: <div class="first"&...

Windows サーバー ポートを開きます (例としてポート 8080 を使用します)

ポートとは何ですか?私たちが通常参照するポートは、物理的な意味でのポートではなく、具体的には TCP...

mysql 計算関数の詳細

目次2. フィールドの連結2. MySQL関数の例をいくつか挙げてください。 2.1 シンボル処理2...

Linux環境でグラフデータベースneo4jを構築する方法の説明

Neo4j (Nosql の 1 つ) は、高性能なグラフ データベース (分散をサポートしていませ...

HTML にオーディオファイルを挿入してブラウザで再生する場合の互換性の問題

HTML にオーディオ ファイルを挿入した後 (mp3 ファイルを再生した後) に発生したいくつかの...

jsはウォーターフォールフローのボトムアウトによるデータの動的ロードを実現します

この記事では、ウォーターフォールフローが底に達したときにデータを動的にロードするためのjsの具体的な...

CSSレイアウトにおけるフロート属性と位置属性の違い

CSS レイアウト - position プロパティposition 属性は、要素に適用する配置方法...