Я запускаю контейнеры Windows в Docker для Windows. Мой docker-compose.yml
выглядит так:
version: '2.4'
services:
web:
image: microsoft/aspnet
platform: windows
networks:
webnet:
ipv4_address: 172.0.0.2
ports:
- "4119:80"
expose:
- "80"
dns:
- 8.8.8.8
- 8.8.4.4
networks:
webnet:
name: "custom_network"
ipam:
config:
- subnet: 172.0.0.0/16
gateway: 172.0.0.1
Когда я присоединяю PowerShell и запускаю ping 8.8.8.8
, пинг проходит нормально. Но когда я запускаю команду ping для доменного имени, я получаю следующий результат:
PS C:\> ping google.com
Ping request could not find host google.com. Please check the name and try again.
И то же самое для любых других IP / доменов. Таким образом, мой контейнер имеет доступ к Интернету, но не может разрешать доменные имена. В качестве обходного пути я попытался вставить предварительно заполненный файл hosts
в контейнер, а затем выполнить ping по доменам из этого файла. Он правильно определяет IP-адрес и получает ответы от удаленного компьютера.
Что я пропустил? Как настроить контейнеры Docker для решения этой проблемы?
Обновление: на моем ПК установлена следующая версия Docker:
> docker version
Client: Docker Engine - Community
Version: 19.03.2
API version: 1.40
Go version: go1.12.8
Git commit: 6a30dfc
Built: Thu Aug 29 05:26:49 2019
OS/Arch: windows/amd64
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 19.03.2
API version: 1.40 (minimum version 1.24)
Go version: go1.12.8
Git commit: 6a30dfc
Built: Thu Aug 29 05:39:49 2019
OS/Arch: windows/amd64
Experimental: true
> docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.0.2q 20 Nov 2018