在使用Docker容器的過程中,有時候我們需要讓容器使用宿主機的IP地址。這里我們介紹一種針對Docker Compose的方法。
version: "3" services: web: build: . ports: - "5000:5000" extra_hosts: - "host.docker.internal:host-gateway" network_mode: "host"
我們使用了extra_hosts和network_mode這兩個屬性。其中extra_hosts是用來在容器中定義主機名和對應的IP,這樣在容器中就可以通過host.docker.internal訪問主機的IP。
network_mode設置為host則不會在容器中創建新的網絡棧,直接使用主機的網絡接口,這樣容器就可以直接訪問主機上的本地服務了。
這種方式可以應用在需要在容器中訪問主機上的服務場景中,一定程度上增加了容器的靈活性。