2017-06-28 7 views
1

Markieren Sie es nicht als Duplikat, weil ich die anderen Antworten angeschaut habe und es mein Problem nicht löst.Warum kann ich keinen Andock-Container anpingen?

Ich verwende Windows 7 und Docker Toolbox.

ich dieses Tutorial tue: https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/microservices

So nach diesem Befehl:

docker run -d -p 80:5000 --name hello-docker weather-microservice 

ich nicht in der Lage bin http://localhost/

So erreichen sie zu beheben, entschied ich die Box anpingen . Aber ich kann nicht.

$ docker ps 
CONTAINER ID IMAGE     COMMAND     CREATED   STATUS  PORTS     NAMES 
78179117b516 weather-microservice "dotnet out/Weathe..." 18 hours ago Up 18 hours 0.0.0.0:80->5000/tcp hello-docker 

Die folgende nicht funktioniert:

$ docker-machine ip weather-microservice 
Host does not exist: "weather-microservice" 

$ docker-machine ip hello-docker 
Host does not exist: "hello-docker" 

$ docker-machine ip 78179117b516 
Host does not exist: "78179117b516" 

$ docker inspect 78179117b516 
[ 
    { 
     "Id": "78179117b516332c61e393a36cc10f33e0f0b0d2f418d8483b79f90207e0de3c", 
     "Created": "2017-06-27T23:37:12.147696044Z", 
     "Path": "dotnet", 
     "Args": [ 
      "out/WeatherMicroservice.dll", 
      "--server.urls", 
      "http://0.0.0.0:5000" 
     ], 
     "State": { 
      "Status": "running", 
      "Running": true, 
      "Paused": false, 
      "Restarting": false, 
      "OOMKilled": false, 
      "Dead": false, 
      "Pid": 22059, 
      "ExitCode": 0, 
      "Error": "", 
      "StartedAt": "2017-06-27T23:37:12.339014063Z", 
      "FinishedAt": "0001-01-01T00:00:00Z" 
     }, 
     "Image": "sha256:0f6481b4a6fb864ecddb36c48a9facfbe30801d328daf59926e1c6c642f3ae24", 
     "ResolvConfPath": "/mnt/sda1/var/lib/docker/containers/78179117b516332c61e393a36cc10f33e0f0b0d2f418d8483b79f90207e0de3c/resolv.conf", 
     "HostnamePath": "/mnt/sda1/var/lib/docker/containers/78179117b516332c61e393a36cc10f33e0f0b0d2f418d8483b79f90207e0de3c/hostname", 
     "HostsPath": "/mnt/sda1/var/lib/docker/containers/78179117b516332c61e393a36cc10f33e0f0b0d2f418d8483b79f90207e0de3c/hosts", 
     "LogPath": "/mnt/sda1/var/lib/docker/containers/78179117b516332c61e393a36cc10f33e0f0b0d2f418d8483b79f90207e0de3c/78179117b516332c61e393a36cc10f33e0f0b0d2f418d8483b79f90207e0de3c-json.log", 
     "Name": "/hello-docker", 
     "RestartCount": 0, 
     "Driver": "aufs", 
     "MountLabel": "", 
     "ProcessLabel": "", 
     "AppArmorProfile": "", 
     "ExecIDs": null, 
     "HostConfig": { 
      "Binds": null, 
      "ContainerIDFile": "", 
      "LogConfig": { 
       "Type": "json-file", 
       "Config": {} 
      }, 
      "NetworkMode": "default", 
      "PortBindings": { 
       "5000/tcp": [ 
        { 
         "HostIp": "", 
         "HostPort": "80" 
        } 
       ] 
      }, 
      "RestartPolicy": { 
       "Name": "no", 
       "MaximumRetryCount": 0 
      }, 
      "AutoRemove": false, 
      "VolumeDriver": "", 
      "VolumesFrom": null, 
      "CapAdd": null, 
      "CapDrop": null, 
      "Dns": [], 
      "DnsOptions": [], 
      "DnsSearch": [], 
      "ExtraHosts": null, 
      "GroupAdd": null, 
      "IpcMode": "", 
      "Cgroup": "", 
      "Links": null, 
      "OomScoreAdj": 0, 
      "PidMode": "", 
      "Privileged": false, 
      "PublishAllPorts": false, 
      "ReadonlyRootfs": false, 
      "SecurityOpt": null, 
      "UTSMode": "", 
      "UsernsMode": "", 
      "ShmSize": 67108864, 
      "Runtime": "runc", 
      "ConsoleSize": [ 
       25, 
       80 
      ], 
      "Isolation": "", 
      "CpuShares": 0, 
      "Memory": 0, 
      "NanoCpus": 0, 
      "CgroupParent": "", 
      "BlkioWeight": 0, 
      "BlkioWeightDevice": null, 
      "BlkioDeviceReadBps": null, 
      "BlkioDeviceWriteBps": null, 
      "BlkioDeviceReadIOps": null, 
      "BlkioDeviceWriteIOps": null, 
      "CpuPeriod": 0, 
      "CpuQuota": 0, 
      "CpuRealtimePeriod": 0, 
      "CpuRealtimeRuntime": 0, 
      "CpusetCpus": "", 
      "CpusetMems": "", 
      "Devices": [], 
      "DeviceCgroupRules": null, 
      "DiskQuota": 0, 
      "KernelMemory": 0, 
      "MemoryReservation": 0, 
      "MemorySwap": 0, 
      "MemorySwappiness": -1, 
      "OomKillDisable": false, 
      "PidsLimit": 0, 
      "Ulimits": null, 
      "CpuCount": 0, 
      "CpuPercent": 0, 
      "IOMaximumIOps": 0, 
      "IOMaximumBandwidth": 0 
     }, 
     "GraphDriver": { 
      "Data": null, 
      "Name": "aufs" 
     }, 
     "Mounts": [], 
     "Config": { 
      "Hostname": "78179117b516", 
      "Domainname": "", 
      "User": "", 
      "AttachStdin": false, 
      "AttachStdout": false, 
      "AttachStderr": false, 
      "ExposedPorts": { 
       "5000/tcp": {} 
      }, 
      "Tty": false, 
      "OpenStdin": false, 
      "StdinOnce": false, 
      "Env": [ 
       "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", 
       "DOTNET_SDK_VERSION=1.0.0-rc4-004771", 
       "DOTNET_SDK_DOWNLOAD_URL=https://dotnetcli.blob.core.windows.net/dotnet/Sdk/1.0.0-rc4-004771/dotnet-dev-debian-x64.1.0.0-rc4-004771.tar.gz", 
       "NUGET_XMLDOC_MODE=skip" 
      ], 
      "Cmd": null, 
      "ArgsEscaped": true, 
      "Image": "weather-microservice", 
      "Volumes": null, 
      "WorkingDir": "/app", 
      "Entrypoint": [ 
       "dotnet", 
       "out/WeatherMicroservice.dll", 
       "--server.urls", 
       "http://0.0.0.0:5000" 
      ], 
      "OnBuild": null, 
      "Labels": {} 
     }, 
     "NetworkSettings": { 
      "Bridge": "", 
      "SandboxID": "f1b934a02a8ac2e83bf68485d2dfb138b859d1e7b3beb4cb7ba966c9e3f4befa", 
      "HairpinMode": false, 
      "LinkLocalIPv6Address": "", 
      "LinkLocalIPv6PrefixLen": 0, 
      "Ports": { 
       "5000/tcp": [ 
        { 
         "HostIp": "0.0.0.0", 
         "HostPort": "80" 
        } 
       ] 
      }, 
      "SandboxKey": "/var/run/docker/netns/f1b934a02a8a", 
      "SecondaryIPAddresses": null, 
      "SecondaryIPv6Addresses": null, 
      "EndpointID": "9c555071437b1919db7c539f0bd3946b7a32f92dcf49c684dbbe01e0592b9af5", 
      "Gateway": "172.17.0.1", 
      "GlobalIPv6Address": "", 
      "GlobalIPv6PrefixLen": 0, 
      "IPAddress": "172.17.0.2", 
      "IPPrefixLen": 16, 
      "IPv6Gateway": "", 
      "MacAddress": "02:42:ac:11:00:02", 
      "Networks": { 
       "bridge": { 
        "IPAMConfig": null, 
        "Links": null, 
        "Aliases": null, 
        "NetworkID": "6226280f22a5aaaa50c60d6f1a19ae8f7243bb79634c4394f62b21a10a868e48", 
        "EndpointID": "9c555071437b1919db7c539f0bd3946b7a32f92dcf49c684dbbe01e0592b9af5", 
        "Gateway": "172.17.0.1", 
        "IPAddress": "172.17.0.2", 
        "IPPrefixLen": 16, 
        "IPv6Gateway": "", 
        "GlobalIPv6Address": "", 
        "GlobalIPv6PrefixLen": 0, 
        "MacAddress": "02:42:ac:11:00:02" 
       } 
      } 
     } 
    } 
] 

Also, wenn ich dies tun:

$ ping 172.17.0.2 

Pinging 172.17.0.2 with 32 bytes of data: 
Request timed out. 

Dies funktioniert:

$ docker exec -it 78179117b516 ping www.google.com 
PING www.google.com (172.217.3.196): 56 data bytes 
64 bytes from 172.217.3.196: icmp_seq=0 ttl=53 time=5.412 ms 

Was mache ich falsch oder Was vermisse ich?

+0

funktioniert '-p 8080: 5000' und der Zugriff auf' http: // localhost: 8080' funktioniert? –

+0

nope @talkdirty – Prostak

Antwort

0

9 von 10 Mal, es ist Windows-Firewall.

Deaktivieren Sie Windows Firewall vollständig - deaktivieren Sie es - und sehen Sie, ob Sie auf Ihre Website gelangen können.

+0

Ich habe keine Rechte Firewall auf meinem lokalen zu deaktivieren ... Ich werde versuchen, ... – Prostak

2

Es ist, weil die IP-Adresse, die Sie über docker inspect Befehl sehen, von Docker für interne Vernetzung und Kommunikation verwendet wird. Es ist nicht von außen zugänglich. Außerdem wird localhost nicht funktionieren, da Sie die Docker-Toolbox ausführen, die innerhalb von ubuntu VM ausgeführt wird. Sie haben die IP-Adresse der VM, indem man zuerst bekommen,

docker-machine ls 

Wenn mein Gedächtnis rechts dient und Toolbox funktioniert genauso in Mac und Windows funktioniert, sollte die IP-Adresse 192.168.99.100 sein. So können Sie Ihre App über, http://192.168.99.100 erreichen. Abgesehen von all diesen, warum verwenden Sie immer noch Docker Tool Box. Der neue Weg ist Andockfenster für Mac/Docker für Windows. Es ist viel einfacher und effizienter. Zu Beginn können Sie Ihre App über localhost erreichen, ohne die IP-Adresse zu kennen.

+0

'docker-machine ls' zu stellen gibt mir diese' tcp: //192.168.99.101: 2376'. wenn ich '192.168.99.101 ping, funktioniert es, aber locke es, und ich bekomme Verbindung verweigert Fehler. Warum verwende ich nicht native Docker ist, weil es nicht für Windows 7, nur für Win 10 verfügbar ist. Win 7 muss Docker Toolbox verwenden. – Prostak

+0

Ich glaube nicht, dass docker-machine diese Ruhe-URL verfügbar hat. Wenn Sie die gesamte App abgeschlossen haben, können Sie eine dieser Ruhe URLs, die sie auf ihrer Website erwähnt haben, überprüfen .. http://192.168.99.101/?lat=35.5&long=40.75 – techtabu

+0

Ich bekomme die gleiche Verbindung verweigert Fehler. – Prostak

0

Eigentlich habe ich die IP meines Containers aus Systemsteuerung \ Netzwerk und Internet \ Netzwerkverbindungen. Es gab einen Adapter namens vEthernet (DockerNAT) und es war der Adapter des Containers. Ich könnte die IP, die ich für diesen Adapter gefunden habe, anpingen.

Verwandte Themen