Dockerでホストファイルをカスタマイズする方法について簡単に説明します

Dockerでホストファイルをカスタマイズする方法について簡単に説明します

1. 質問: 実際の開発では、データベースはイントラネット上に展開され、プログラムがデータベースに接続するときに、イントラネット アドレスを指定する必要があります。しかし、場合によっては環境を移行する必要があり、それに応じてバックエンド コードを変更する必要があります。コードの変更を防ぐ良い方法はありますか?

回答: 確かにあります。つまり、コードで指定されているのは IP アドレスではなく、ドメイン名です。ドメイン名と IP アドレスを設定するだけでマッピング関係を確立でき、すべてのプロジェクトでコードを変更せずに目標を達成できます。

2. 質問: 公式環境は通常、少なくとも 3 つのサーバーを備えたクラスター形式です。ドメイン名を 3 つ購入する必要がありますか?さらに、ドメイン名はパブリック IP にのみバインドできます。データベースを外部ネットワークに公開できますか?セキュリティ上の理由から、データベースを外部ネットワークに公開することはできません。では私たちは何をすべきでしょうか?

回答: ホスト ファイルを変更し、ホスト内のデータベース クラスターのドメイン名とイントラネット IP をカスタマイズします。物理 Linux マシンでは、/etc/host ファイルを変更するだけです。

私たちのサービスが docker の形式で Linux 上にデプロイされている場合。では、docker でホストを変更するにはどうすればよいでしょうか?

1. コマンド

通常、正式環境のイメージは事前にコンパイルされています。docker-compose でコンパイルされていないイメージの場合は、ホストを変更することが難しいため、起動時にパラメータで設定するしかありません。

docker 実行 --add-host=www.scalerwang.com:192.168.1.100 --add-host=blog.scalerwang.com:192.168.1.200 --name wangscaler -it mydocker

コマンドパラメータを使用して --add-host を指定します

2. docker-compose.yml

コンパイルされたDockerコンテナがホストファイルを自動的に構成するようにymlで指定します。yaml関連の内容は次のとおりです。

サービス:
  サービス-nginx:
    画像: nginx
    追加ホスト:
    - 「www.scalerwang.com:192.168.1.100」
    - 「blog.scalerwang.com:192.168.1.200」

3. Dockerファイル

Dockerfile には、ホストファイルを直接変更するための直接パラメータはありません。Dockerfile を通じてホストファイルを変更する場合は、事前にホストファイルを準備し、コードのルートディレクトリに配置する必要があります。

メンテナー [email protected]
//wangscaler を追加
cat /wangscaler/hosts を実行 >> /etc/hosts

これも可能です。

4. 直接変更

手間がかからなければ、試してみるといいでしょう。もちろん、プログラムがバックグラウンドで起動されていて、環境が間違っているために起動できない場合は、プログラムにアクセスして変更することはできません。
この方法は面倒です (クラスターの数が多いほど面倒です)、また適用できません (正しいホストがないと docker を実行できません。また、設定したドメイン名が他の人のものである可能性もあり、その場合はその人にリクエストを開始することになります)。

5. 画像を修正する

プロジェクトが docker 形式でデプロイされる場合、多くの場合、最初に dockerfile と docker-compose を通じてイメージにコンパイルされます。このとき、イメージをプルダウンしてホストを変更し、再度プッシュアップして元のイメージを上書きすることができます。

要約する

最良の方法は最初の 2 つです。時間と労力を節約でき、一度に実行できます。 dockerfile を使用してイメージをコンパイルする場合は、最初のオプションを選択します。docker-compose を使用してコンパイルする場合は、docker-compose.yml を一度だけ変更します。 3 番目も許容範囲ですが、最後の 2 つについては、知らないふりをして、実行しようとしないでください。
コンテナ作成時の IP アドレスの指定や、Dockerfile と Docker-compose を使用したコンテナの作成方法など、Docker の使い方の詳細については、前回の記事「Docker のセットアップと基本コマンド」を参照してください。

Docker のホスト ファイルをカスタマイズする方法についての記事はこれで終わりです。Docker のホスト ファイルをカスタマイズする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerコンテナ内のホストのホスト名が取得できない問題の解決方法
  • Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。
  • Docker コンテナのカスタム ホストのネットワーク アクセス操作
  • Docker ネットワークの単一ホスト ネットワークとユースケース
  • Docker Dockerデーモンに接続できません。このホストでDockerデーモンが実行されていますか?エラーの解決方法

<<:  JavaScript関数の詳細な説明これを指す問題

>>:  CSSアニメーションでポイント獲得効果を実現するアイデアを詳しく解説

推薦する

JS ネイティブ 2048 ゲーム ソース コード共有 (インターネットの最新情報)

最近、アルゴリズムについて学んでいて、アルゴリズムで動く小さなゲームに出会いました。そのコードは次の...

LeetCode の SQL 実装 (175. 2 つのテーブルの結合)

[LeetCode] 175.2つのテーブルを結合する表: 人物+-------------+--...

マーキー要素は、スクロールするフォントや画像などの効果を実装します。

マーキー要素を使用すると、単純なフォント(画像など)のスライドやその他の効果を実現できます。コードを...

vueはEle.me UIを使用してteambitionのフィルタリング機能を模倣します

目次問題の説明一般的な機能効果は次のとおりです。思考分析完全なコード要約する問題の説明Teambit...

グローバルトーストコンポーネントをカプセル化するVueの完全な例

目次序文1. vue-cliを使う1. Toastコンポーネントを定義する2. main.jsで設定...

IE8を閲覧するときにウェブサイトが自動的にIE7互換モードを使用するようにする

序文IE の将来のすべてのバージョンで Web ページの外観が一貫していることを保証するために、IE...

写真とテキストによる MySQL と sqlyog のインストール チュートリアル

1. MySQL 1.1 MySQLのインストールmysql-5.5.27-winx64 ダウンロー...

CSS ウェイト値(カスケード)の例の詳細な説明

•CSSには多くのセレクターがあります。複数のセレクターを同じ要素に適用するとどうなるでしょうか? ...

Linux telnetコマンドの使用

1. はじめにtelnet コマンドは、リモート ホストにログインするために使用されます。これは、T...

ウェブページのテーブルの境界線を設定する方法

<br />前回は、Web テーブルにセルの線を設定する方法を学びました。今日は、Web...

美しい FLASH ウェブサイト デザイン例 50 選

Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...

CentOS 7 でゲートウェイを変更して IP を設定する方法の例

Centos7 バージョンをインストールするときに、外部ネットワークへの接続を選択すると、外部ネット...

MySQL データベースの必須条件クエリ ステートメント

目次1. 基本的な文法2. 条件式によるフィルタリング3. 論理式によるフィルタリング4. あいまい...

WeChatアプレットが検索ボックス機能を実装

この記事の例では、WeChatアプレットの検索ボックス機能を実装するための具体的なコードを参考までに...

Docker ケース分析: Redis サービスの構築

目次1 マウントディレクトリとファイルを作成する2 Redisイメージを取得する3 コンテナを作成し...