Docker 컨테이너에서 localhost에 액세스할 수 없습니다.

Docker 컨테이너에서 localhost에 액세스할 수 없습니다.

나는 이 튜토리얼을 단계별로 따랐습니다.https://www.youtube.com/watch?v=NZGu-9KQVsE

  • Dockerfile을 만들었습니다.

우분투에서: Jamie

RUN : \
    && apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y \
        curl \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
  • 도커 이미지를 만들었습니다.
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

이유를 아시나요? 우분투 22.04.4 LTS를 사용하고 있습니다

답변1

다음 명령을 실행하여 문제를 해결했습니다.

sudo ufw allow 8000

관련 정보