컨테이너가 DNS 이름을 확인할 수 없는 Arch Linux에서 지속적인 Docker 문제가 발생했습니다. 컨테이너는 외부 IP 주소를 ping하여 네트워크 연결이 정상이지만 DNS 확인에 실패했음을 나타낼 수 있습니다. 이 문제는 모든 컨테이너에 존재하며 단일 이미지에만 국한되지 않습니다. 어제까지는 이 컴퓨터에 이 내용이 나타나지 않았습니다. 나는 업무에 매일 Docker를 사용하는데 이런 문제가 발생한 적이 없습니다. 저는 Arch Linux를 사용하고 있는데 새 업데이트로 인해 문제가 발생한 것이 아닐까요? 참고하세요.
커널: 6.6.7-arch1-1
도커: 24.0.7, afdd53b4e3 빌드
나는 어떤 식으로든 도커 네트워크 구성을 망쳐 놓지 않았습니다.
수행 단계: 컨테이너가 외부 IP(예: 8.8.8.8)를 ping할 수 있는지 확인합니다. Google의 DNS 서버를 사용하도록 Docker를 구성합니다 /etc/docker/daemon.json
.
{
"dns": ["8.8.8.8", "8.8.4.4"]
}
iptables 규칙을 확인했는데 명백한 구성 오류는 발견되지 않았습니다. 삭제를 포함하여 Docker를 제거하고 다시 설치합니다 /var/lib/docker
. 방해할 수 있는 충돌하는 소프트웨어(예: VPN 또는 방화벽 규칙)가 없는지 확인하세요.
docker run --rm busybox ping -c 4 google.com
ping: bad address 'google.com'
IP를 직접 핑하는 동안(예: 8.8.8.8) 다음 과 같은 명령을 사용하여 컨테이너를 실행하면 정상적으로 작동합니다. docker run --rm --dns 8.8.8.8 busybox ping -c 4 google.com
작동하지 않습니다. resolv.conf
컨테이너도 Google DNS로 설정되어 있습니다.
docker network inspect bridge
출력이 정상적으로 나타납니다. 호스트는 /etc/resolv.conf
Google의 DNS를 사용하도록 설정되었습니다. iptables 구성은 Docker의 표준인 것 같습니다(저는 한 번도 사용해 본 적이 없습니다).
나는 여기서 매우 혼란스러워요. 비슷한 문제가 발생한 사람이 있습니까? 도움이 될 만한 다른 정보가 있으면 알려주시기 바랍니다.