![无法从 Docker 容器访问 localhost](https://linux22.com/image/231112/%E6%97%A0%E6%B3%95%E4%BB%8E%20Docker%20%E5%AE%B9%E5%99%A8%E8%AE%BF%E9%97%AE%20localhost.png)
我一步步遵循本教程:https://www.youtube.com/watch?v=NZGu-9KQVsE
- 我创建了一个 Dockerfile:
来自 ubuntu: 杰米
RUN : \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
- 我构建了 docker 镜像:
docker build -t mycurl .
- 我使用运行图像
docker run --add-host host.docker.internal:host-gateway --rm -ti mycurl bash
- 我使用启动了本地服务器
python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
- 但是当我尝试从容器访问它时,出现超时:
root@da4d8b1f4ae4:/# curl host.docker.internal:8000
curl: (28) Failed to connect to host.docker.internal port 8000 after 133451 ms: Connection timed out
我的 /etc/hosts 是:
root@da4d8b1f4ae4:/# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.1 host.docker.internal
172.17.0.2 da4d8b1f4ae4
知道为什么吗?我使用的是 Ubuntu 22.04.4 LTS
答案1
我通过运行以下命令解决了我的问题:
sudo ufw allow 8000