gpt4 book ai didi

curl - 使用 curl 连接到 docker

转载 作者:行者123 更新时间:2023-12-01 05:27:15 24 4
gpt4 key购买 nike

我关注 this关于 docker 的教程,它设置了一个小型的 hello world 服务器。

这是预期的行为:

docker run -d -p 5000:5000 training/webapp:latest python app.py
curl http://dockerhost:5000
Hello world!

但是,当我运行时出现错误
curl http://dockerhost:5000
curl: (6) Could not resolve host: dockerhost

我查看了其他一些答案并尝试了
ping http;//dockerhost:5000
unknown host http://dockerhost:5000

nslookup http://dockerhost:5000
;; connection timed out; no servers could be reached

netstat -utapen | grep 5000
tcp6 0 0 :::5000 :::* LISTEN 0 251303 -

一些 stackoverflow 答案( curl: (6) Could not resolve host: google.com; Name or service not known )正在谈论 DNS 问题(错误的 DNS 服务器),但我不知道该怎么做才能查看这是否与我的问题有关。

最佳答案

这更像是一个 DNS问题。

当您使用 curl 等命令时, pingnslookup或其他打开与另一端的连接的命令,它们希望您通知另一端的 IP 地址,或者可以解析为 IP 的名称。

在您的情况下,dockerhost是名称,而不是 IP,您的系统无法将此名称解析为 IP 地址。

有很多解决方案,就像上面提到的那样。
您可以将名称的 IP 地址告知您的系统 dockerhost但在 /etc/hosts 中插入一行文件(如果你在 Linux 机器上):

echo "127.0.0.1 dockerhost" >> /etc/hosts

或者只是编辑文件 C:\Windows\System32\drivers\etc如果你在 Windows 机器上。

这会告诉您的系统名称的 IP 地址 dockerhost127.0.0.1 ,与您的 localhost 相同,或者,您自己的机器。

现在你应该可以 ping它:
ping dockerhost
ping 的节点和 nslookup只需要一个名称,没有协议(protocol)( http:// )和端口( 5000 )。 curl确实期望协议(protocol)和端口。

或者你可以只使用 IP 127.0.0.1而不是 dockerhost .

关于curl - 使用 curl 连接到 docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41887775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com