curl: (7) 无法连接到 www.example.com 端口 80:连接超时

时间:2021-02-03 00:53:11

标签: docker curl

我似乎无法从 docker 容器内连接到任何网站。

从主机,curl 工作:

主机在 Ubuntu 20.04 上运行

$ curl -v -4 http://www.example.com/
*   Trying 93.184.216.34:80...
* TCP_NODELAY set
* Connected to www.example.com (93.184.216.34) port 80 (#0)
> GET / HTTP/1.1
> Host: www.example.com
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Age: 574872
< Cache-Control: max-age=604800
< Content-Type: text/html; charset=UTF-8
< Date: Wed, 03 Feb 2021 00:44:49 GMT
< Etag: "3147526947"
< Expires: Wed, 10 Feb 2021 00:44:49 GMT
< Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
... snipped ...

但是当我从容器内部执行相同操作时 (FROM php:7.4-fpm):

$ docker-compose exec app sh

$ curl -v -4 http://www.example.com/
* Expire in 0 ms for 6 (transfer 0x557e9580ff90)
* Expire in 1 ms for 1 (transfer 0x557e9580ff90)
* Expire in 0 ms for 1 (transfer 0x557e9580ff90)
* Expire in 2 ms for 1 (transfer 0x557e9580ff90)
* Expire in 1 ms for 1 (transfer 0x557e9580ff90)
* Expire in 1 ms for 1 (transfer 0x557e9580ff90)
* Expire in 4 ms for 1 (transfer 0x557e9580ff90)
* Expire in 2 ms for 1 (transfer 0x557e9580ff90)
* Expire in 2 ms for 1 (transfer 0x557e9580ff90)
* Expire in 2 ms for 1 (transfer 0x557e9580ff90)
*   Trying 93.184.216.34...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x557e9580ff90)
* connect to 93.184.216.34 port 80 failed: Connection timed out
* Failed to connect to www.example.com port 80: Connection timed out
* Closing connection 0
curl: (7) Failed to connect to www.example.com port 80: Connection timed out

启用或禁用 ufw 也会发生同样的情况。

相同的 docker-compose.yml 分别在运行 Ubuntu 16.04、18.04 和 20.04 的 3 台笔记本电脑上运行(没有这个缺陷)。

我希望有人能指出我正确的方向。

0 个答案:

没有答案