在演示如何通過別名/名稱連接到另一個容器時,我在網上找到的所有示例都創建了自己的網路。
# create the network
$ docker network create my-network
# create the containers and connect them to the network
$ docker run --name service-one --network my-network ...
$ docker run --name service-two --network my-network ...
現在在 service-one 容器中,我們可以通過其容器名稱 service-two(而不是 localhost)連接到 service-2!使用后者的別名從服務二到服務一也是如此。
我想在不創建自己的網路的情況下使用默認bridge網路來做同樣的事情。是否可以?如果不是,為什么?
我在默認網路--net-alias上啟動了一個容器:--namebridge
docker run --rm --name=wa -dti -p 80:80 --net-alias=webapp docker/getting-started
現在從另一個容器內部,我嘗試通過bridge兩個容器都屬于的默認網路連接到它:
docker run --rm curlimages/curl https://webapp
curl: (6) Could not resolve host: webapp
docker run --rm curlimages/curl https://wa
curl: (6) Could not resolve host: wa
沒運氣。但是通過IP地址連接時它作業得很好。
uj5u.com熱心網友回復:
我想在不創建自己的網路的情況下使用默認的橋接網路來做同樣的事情。是否可以?如果不是,為什么?
不幸的是,無法參考 docker 檔案:https ://docs.docker.com/network/bridge/#differences-between-user-defined-bridges-and-the-default-bridge
用戶定義的網橋提供容器之間的自動 DNS 決議。
默認橋接網路上的容器只能通過 IP 地址相互訪問,除非您使用 --link 選項,該選項被視為舊版。在用戶定義的橋接網路上,容器可以通過 name 或 alias 相互決議。
也來自:https ://docs.docker.com/config/containers/container-networking/#dns-services
DNS 服務
默認情況下,容器會繼承主機的 DNS 設定,如 /etc/resolv.conf 組態檔中所定義。使用默認橋接網路的容器會獲得此檔案的副本,而使用自定義網路的容器使用 Docker 的嵌入式 DNS 服務器
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/480097.html
標籤:码头工人
