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アニメーションでポイント獲得効果を実現するアイデアを詳しく解説

推薦する

特定のシンボルで複数の行と列に分割するMySQLの例

一部の障害コード テーブルでは、履歴またはパフォーマンス上の理由から、次の設計パターンが使用されます...

WeChatアプレットが連携メニューを実現

最近はコース設計を実現するために、フロントエンドも少しやっています。今日はいくつかの機能を実現するた...

Vue.jsはシンプルな折りたたみパネルを実装します

この記事では、Vue.jsの具体的なコードを共有して、シンプルな折りたたみパネルを実装する例を紹介し...

CocosCreator MVCアーキテクチャの詳細な説明

概要この記事では、ゲームクライアントでよく使用される MVC アーキテクチャについて紹介します。ゲー...

MySQL の列から行への変換と年月グループ化の例

以下のように表示されます。 SELECT count(DISTINCT(a.rect_id)) zc...

MySQL統計データテーブルの設計方法

目次リアルタイム更新は必要ですか?マテリアライズド ビュー ツール (Flexviews)カウントテ...

Linuxでテキスト比較を実現するコツを教えます

序文コードを書く過程で、必然的にコードに何らかの変更を加えることになります。しかし、変更を加えるとき...

Docker Swarm を使用して分散クローラー クラスターを構築する例

クローラーの開発プロセス中に、クローラーを複数のサーバーに展開する必要がある状況に遭遇したことがある...

VMware ESXi CLI の一般的なコマンドを調べる

目次【共通コマンド】 [一般的な esxi コマンドの概要] [esxcli コマンドの調査] ES...

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...

シェルスクリプトを使用して Docker サービスを一括で開始および停止する

目次Dockerを起動するDockerを停止するPython 呼び出しスクリプト最近、日々のテストで...

JavaScript 関数はランダムな色の検証コードをカプセル化します (完全なコード)

数字、文字、またはランダムな色の数字と文字の混合で構成される n 桁の確認コード。以下に完全なコード...

Windows で複数の MySQL インスタンスを実行する方法

序文Windows では、各インスタンスに適切なパラメータを使用してコマンド ラインから複数の My...

vmware workstation12 インストール CentOS プロンプト VMware Player と Device/Credential Guard に互換性がない、理由と解決策

最新バージョンの WIN10 では、Microsoft は仮想化コンテナに基づくセキュリティ メカニ...

TCPパフォーマンスチューニングの実装原理とプロセス分析

3ウェイハンドシェイクフェーズクライアントSYNパケットの再試行回数sysctl -w net.ip...