簡體   English   中英

如何使用重定向 127.0.0.1 到 docker 機器 IP

[英]How to use a redirect 127.0.0.1 to docker machine IP

我正在為響應通配符子域的 web 應用程序設置docker-compose環境。 在開發中,我們簡單地使用大lvh.me域(解析為 127.0.0.1),它適用於所有子域,無需任何額外配置,例如:

  • 應用程序.lvh.me:3000
  • app2.lvh.me:3000
  • 應用程序-watherever.lvh.me:3000

我的問題是如何設置自定義域(比如說app.local )及其所有子域以解析為docker-machine ip

注意:我不想使用etc/hosts ,因為它需要將每個子域單獨添加到文件中。

您可以通過 DNS 托管服務使用您的一個域(或購買一個便宜的域)。

If your docker machine's ip is dynamic, you'll need a hosting service that supports Dynamic DNS, or a regular DNS service with for an A record pointing to the static ip.

這實際上與 Docker 並不特別相關。

請注意,使用“.local”域后綴執行此操作將阻止您從公眾信任的機構獲取 TLS 證書,並導致您必須修改您的環境以必須信任本地證書頒發機構,然后頒發證書到您的 docker 機器的托管域。 如果您有 IT 部門,我強烈建議您與他們交談; 如果他們拒絕該請求,請與您的經理交談並讓他們推動。

基本步驟如下:

  1. 設置一個本地 DNS 服務器,您可以將解析器指向該服務器。

  2. 將其配置為將其自身無法回答的查詢轉發到您當前的 DNS 服務器。

  3. 設置一個包含一些記錄的“app.local”區域。 (在 SOA 記錄中,您的 email 地址應該用點而不是 @ 符號寫入,並帶有一個尾隨點。在此處寫入的所有完整 DNS 名稱都必須有一個尾隨點。此外,將“127.19.20.201”交換為無論您的碼頭機器 IP 是什么):

app.local.    IN       SOA  60  yourmachinename your.email.address.  (
                       2019102100    ; serial number: YYYYMMDDss where ss is sequence
                       3600          ; refresh interval, not important here
                       1800          ; retry interval, not important here
                       3600          ; record expiration, not important here
                       60            ; minimum record time-to-live
)
app.local.    IN       A    60  172.19.20.201
*.app.local.  IN       A    60  172.19.20.201
  1. 更改您的操作系統解析器以指向該本地 DNS 服務器。 (如果您使用的是 Windows,則此操作需要提升。否則,如果您使用的是綁定,則它位於 /etc/resolv.conf 中。)

如果您不僅需要在自己的機器上執行此操作,請咨詢您的 IT 部門 他們有能力(盡管不一定願意,除非你的經理強迫他們進入)為所有使用 DNS 服務器的機器設置這個區域。 商業理由('我們需要它表現得像我們的主應用程序,但在不同的主機和域名上')勝過意識形態的正確性(盡管在 DNS RFC 中保留了 '.local' 作為 TLD),盡管它們不能勝過協議要求.

(如果你需要一個 TLS 證書來進行這個開發——你真的很可能這樣做。——你也應該和你的 IT 部門談談。他們可以通過驗證 DNS 區域的控制權從 LetsEncrypt 獲得免費的通配符證書,了解如何完成可能需要 15 到 30 分鍾。設置環境可能需要 15 分鍾到 6 小時,具體取決於使用的 DNS 提供程序。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM