2017-06-28 11 views
1

私は他の答えを見て、それは私の問題を解決しないので、重複としてマークしないでください。ドッキング・コンテナにpingできないのはなぜですか?

私はWindows 7とドッカーツールボックスを使用しています。

私はこのチュートリアルをやっている: https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/microservices

をので、このコマンドの後:

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

私はそれをトラブルシューティングするのでhttp://localhost/

に到達することはできませんよ、私はボックスにpingを実行することを決定しました。しかし、私はできません。

$ 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 

次は動作しません:

$ 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" 
       } 
      } 
     } 
    } 
] 

私はこれを行うときに:

$ ping 172.17.0.2 

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

をこれは動作します:

$ 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 

を私が間違って何をやっていますか、私は何が欠けていますか?

+0

'-p 8080:5000'は' http:// localhost:8080'にアクセスしますか? –

+0

nope @talkdirty – Prostak

答えて

0

9回中9回、Windowsファイアウォールです。

Windowsファイアウォールを完全に無効にする - 無効にして、サイトにアクセスできるかどうかを確認します。

+0

私のローカルでファイアウォールを無効にする権利はありません...私は要求しようとします... – Prostak

2

docker inspectコマンドで表示されるIPアドレスは、内部ネットワークと通信にdockerによって使用されるためです。外からはアクセスできない。また、ubuntu VM内で動作するドッカーツールボックスを実行しているので、localhostは動作しません。私の記憶が右の役割を果たし、ツールボックスは、Macで同じように動作し、Windowsが動作する場合は、最初による

docker-machine ls 

をVMのIPアドレスを取得する必要があり、IPアドレスは192.168.99.100でなければなりません。したがって、http://192.168.99.100を経由してアプリにアクセスできます。これらすべてに加えて、なぜあなたはまだドッカーツールボックスを使用していますか?新しい方法は、Windows用mac/dockerのドッカーです。それはずっと簡単で効率的です。まず、IPアドレスを知る必要なく、localhost経由であなたのアプリケーションにアクセスできます。

+0

'docker-machine ls'は私にこの' tcp://192.168.99.101:2376'を与えます。私は '192.168.99.101'にpingを実行すると動作しますが、それをカールすると接続が拒否されます。なぜ私はネイティブdockerを使用していないのは、Windows 7では使用できないため、Windows 10のみです。Windows 7はdockerツールボックスを使用する必要があります。 – Prostak

+0

私はドッカーのマシンが利用可能な残りのURLを持っているとは思わない。あなたがアプリケーション全体を完了している場合は、あなたは彼らのウェブサイトで言及したそれらの残りのURLの1つをチェックすることができます.. http://192.168.99.101/?lat=35.5&long=40.75 – techtabu

+0

同じ接続が拒否されましたエラーが発生しています。 – Prostak

0

実際、コントロールパネル\ネットワークとインターネット\ネットワーク接続から自分のコンテナのIPを取得しました。 vEthernet(DockerNAT)と呼ばれるアダプタがあり、それはコンテナのアダプタでした。私はこのアダプターで見つけたIPをpingできました。

関連する問題