DockerイントラネットはDNSを構築し、ip:port操作の代わりにドメイン名アクセスを使用します

DockerイントラネットはDNSを構築し、ip:port操作の代わりにドメイン名アクセスを使用します

たとえば、イントラネットに Jenkins サーバーがある場合、そのサーバーにアクセスするには、その IP とポート番号を覚えておく必要があります。 1 つのサービスを覚えることはできますが、複数のサービスがある場合は、いくつかのイントラネット サービスを記録するために覚えやすいドメイン名が必要になる場合があります。

ステップ1: Docker環境を準備する

ステップ2: 画像をダウンロードする

docker pull andyshinn/dnsmasq:2.75

ステップ3: dnsmasqを実行する

#バックグラウンドで開始 docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns-server andyshinn/dnsmasq:2.75

#コンテナに入る docker exec -it dns-server /bin/sh

#プロキシファイルの作成 - 外部DNSの追加
vi /etc/resolv.dnsmasq

ネームサーバー 114.114.114.114
ネームサーバー 8.8.8.8

#新しいローカル解決ルール構成を作成 - ローカル解決ルールを追加#注: ここでの IP は、Docker が配置されているホストの IP で入力する必要があります
vi /etc/dnsmasqhosts
.168.3.54 jenkins.ean.com test1.ean.com
.168.3.54 の redis.ean.com

#先ほど設定した2つのファイルを追加します #vi /etc/dnsmasq.conf
解決ファイル=/etc/resolv.dnsmasq
addn-hosts=/etc/dnsmasqhosts

#コンテナを終了して再起動する

docker dns-server を再起動する

ステップ4: nginxを設定する

3.54ではドメイン名リバースプロキシとしてnginxを必ずインストールしてください

サーバ{
 聞く 80;
 サーバー名 jenkins.ean.com;
 proxy_set_header ホスト $host;
 位置 /{
  プロキシパス http://192.168.3.54:8060;
 }
}

追加知識: docker pull プライベート ウェアハウス イメージ

1. Docker プルプライベートウェアハウスエラー

httpサーバーはhttpsクライアントにhttp応答を返しました

Dockerのバージョンが異なるため、次の2つの方法を試すことができます: (クライアント側での構成)

(1)方法1:/etc/docekr/daemon.jsonを設定する

:vim /etc/docker/daemon.json を実行します。
{
 "insecure-registry": ["172.16.12.196:5000"] (倉庫のアドレス)
}

(2)方法2:/etc/sysconfig/dockerを設定する

: : vim /etc/sysconfig/docker を実行する

INSECURE_REGISTRY = "--insecure-registry 172.16.12.196:5000"

Docker イントラネットで DNS を設定し、ip:port の代わりにドメイン名アクセスを使用する方法については、上記の記事が皆さんにお伝えできるすべてです。この記事が皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker は完璧な PaaS の代替手段でしょうか?
  • 廃止された Docker は Podman に置き換えられますか?

<<:  カルーセルカルーセルケースのJS実装

>>:  マークアップ言語 - アンカー

推薦する

MySQL ファントムリードとその排除方法の詳細な説明

目次トランザクション分離レベルファントムリーディングとは何ですか?ファントムリードを排除する方法要約...

LeetCode の SQL 実装 (196. 重複するメールボックスを削除する)

[LeetCode] 196.重複したメールを削除するSQL クエリを記述して、Person とい...

docker cp ファイルをコピーしてコンテナに入る

実行中のコンテナに入る # コンテナに入り、新しいターミナルを開きます# docker exec -...

MySQL トリガーの定義と使用方法の簡単な例

この記事では、MySQL トリガーの定義と使用方法について説明します。ご参考までに、詳細は以下の通り...

問題におけるJS演算子の調査

問題は、誰もが「メモリ リーク」について知っていることです。一般的なシナリオはいくつかあります。クロ...

MySQL 8.0.18 安定版がリリースされました! 予想通りハッシュ結合が実装されました

MySQL 8.0.18 安定版 (GA) が昨日正式にリリースされ、Hash Join も期待通り...

JS の new 関数の詳細な説明

目次1. 例2. 兵士100人を作成する3. 質問4. 改善点5. エレガント? 6. JSの父から...

docker コンペ応募でよく使われるコマンドのまとめ

アカウントにログイン DOCKER_REGISTRY=registry.cn-hangzhou.al...

React Nativeがシミュレータにリンクできない件について

React Native は、現在人気のオープンソース JavaScript ライブラリ React...

MySQL のクエリパフォーマンスに対する制限の影響

I. はじめにまず、MySQL のバージョンについて説明します。 mysql> バージョンを選...

Linux で ping は成功するがポートが利用できない問題を解決する方法

ping は成功したがポートにアクセスできない場合のポート可用性検出の説明ポート可用性検出ツールの紹...

MySQL 実践演習 シンプルなライブラリ管理システム

目次1. ソート機能2. データベースを準備する3. データベースに関連するエンティティクラスの構築...

ウェブサイトに天気予報を挿入する方法

天気予報をウェブサイトに挿入すると、次のような効果が得られます。次のコードを挿入する必要があります:...

Vue要素ヘッダーにスラッシュを追加するための実装コード

<テンプレート> <div class="アプリコンテナ"&...

MySQLの読み書き分離により挿入後にデータが選択されなくなる問題を解決

MySQLは独立した書き込み分離を設定します。コードに次のものを書くと問題が発生する可能性があります...