错误报告信息
说明
无法从Windows 10上的容器内ping docker-compose服务。 ping该服务的IP地址有效。
重现此问题的步骤:
1使用以下内容创建docker-compose-quick-servers.yml
--typescript
2运行docker容器:docker-compose -f。\ docker-compose-quick-servers.yml up -d
3 ping其他docker-compose服务:docker exec Server_1 ping server2
描述您收到的结果: ping失败。使用第二个服务IP地址的相同操作可以正常工作。
描述您期望的结果: 我们应该能够使用其定义的名称ping服务。
您认为重要的其他信息(例如,问题偶尔发生): 在我们的产品环境中(在Windows Server 2016上),它可以正常工作。
npm run eject
的输出:
version: '3.4'
services:
server1:
image: mcr.microsoft.com/windows/nanoserver
container_name: Server_1
entrypoint: ping -t localhost
server2:
image: mcr.microsoft.com/windows/nanoserver
container_name: Server_2
entrypoint: ping -t localhost
networks:
default:
external:
name: nat
docker version
的输出:
Client: Docker Engine - Community
Version: 18.09.2
API version: 1.39
Go version: go1.10.8
Git commit: 6247962
Built: Sun Feb 10 04:12:31 2019
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.2
API version: 1.39 (minimum version 1.24)
Go version: go1.10.6
Git commit: 6247962
Built: Sun Feb 10 04:28:48 2019
OS/Arch: windows/amd64
Experimental: false
docker检查两个容器 容器1
docker info
容器2
Containers: 2
Running: 2
Paused: 0
Stopped: 0
Images: 9
Server Version: 18.09.2
Storage Driver: windowsfilter
Windows:
Logging Driver: json-file
Plugins:
Volume: local
Network: ics l2bridge l2tunnel nat null overlay transparent
Log: awslogs etwlogs fluentd gelf json-file local logentries splunk syslog
Swarm: inactive
Default Isolation: hyperv
Kernel Version: 10.0 17134 (17134.1.amd64fre.rs4_release.180410-1804)
Operating System: Windows 10 Enterprise Version 1803 (OS Build 17134.706)
OSType: windows
Architecture: x86_64
CPUs: 8
Total Memory: 15.93GiB
Name: H198818
ID: HOKO:5CAS:SIQ2:SCLD:3TB7:A6GG:EH5X:763G:CBV5:UQMJ:BGSO:PF2Y
Docker Root Dir: E:\ProgramData\Docker
Debug Mode (client): false
Debug Mode (server): true
File Descriptors: -1
Goroutines: 36
System Time: 2019-04-18T15:33:25.7898496-04:00
EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
答案 0 :(得分:0)
不建议将Docker CE用于Windows Server。使用Docker EE Basic,Windows Servers免费。
更新: 总的来说,您的配置看起来不错...设置了别名,但是从ping输出中,我看到这不是ping问题,而是dns解析。第二个容器使用某些外部dns来解析server1,而不是使用docker内部dns。
有一个类似的错误报告涉及Windows容器的docker dns解析:https://github.com/docker/for-win/issues/1976
这可能是您的情况。
作为临时解决方案,我建议您将容器中的dns解析器设置为127.0.0.11
(https://docs.docker.com/v17.09/engine/userguide/networking/configure-dns/)上的默认docker dns