최근 몇 년 동안 Docker가 널리 사용됨에 따라 Docker를 사용할 때 때때로 오늘 논의할 문제와 같은 몇 가지 문제에 직면할 수 있습니다. Docker 컨테이너는 인터넷에 액세스할 수 없습니다. 이 문제는 Docker를 사용할 때 매우 흔히 발생하지만 매우 짜증나고 골치 아픈 문제이기도 합니다. 오늘은 Docker 컨테이너가 인터넷과 해당 솔루션에 액세스할 수 없는 몇 가지 이유를 공유하겠습니다.
1. 컨테이너의 네트워크 설정을 확인합니다
먼저, 컨테이너의 네트워크 설정을 확인하여 네트워크 설정이 올바른지 확인해야 합니다. Docker를 사용하여 컨테이너를 생성할 때 컨테이너의 네트워크 유형과 네트워크 구성을 설정할 수 있습니다. 네트워크 유형이 "없음"으로 구성되면 컨테이너는 인터넷에 액세스할 수 없습니다. 그리고 네트워크 유형을 "브리지"로 설정하면 컨테이너는 호스트의 네트워크를 통해 인터넷에 접속할 수 있다.
다음 명령을 사용하여 컨테이너의 네트워크 설정을 볼 수 있습니다.
docker inspect <容器名或 ID> | grep NetworkMode
출력 결과가 "none"이면 다음 명령을 사용하여 컨테이너 네트워크 유형을 "bridge"로 설정해야 합니다.
docker run --net=bridge <镜像名>
컨테이너가 호스트를 통과할 수 있도록 호스트 네트워크가 온라인 상태입니다.
2. 컨테이너의 DNS 구성을 확인하세요.
다른 컨테이너가 인터넷에 접속할 수 없는 이유는 DNS 구성이 잘못되었기 때문입니다. 컨테이너 내부나 호스트에서 명령을 실행할 때 DNS를 사용하여 도메인 이름을 확인해야 합니다. DNS 구성이 잘못된 경우 컨테이너는 도메인 이름을 확인할 수 없으며 인터넷에 액세스할 수 없습니다.
다음 명령을 사용하여 컨테이너의 DNS 구성을 확인할 수 있습니다.
docker inspect <容器名或 ID> | grep -i dns
출력 결과가 비어 있으면 DNS 구성을 수동으로 설정해야 합니다. 컨테이너를 생성할 때 다음 명령을 사용하여 DNS 구성을 수동으로 설정할 수 있습니다.
docker run --dns=<DNS 服务器> <镜像名>
위 명령에서는 DNS 서버를 8.8.8.8과 같은 자체 DNS 서버 주소로 구성할 수 있습니다.
3. 컨테이너의 방화벽 설정을 확인하세요
컨테이너가 인터넷에 접속할 수 없는 이유도 컨테이너의 방화벽 설정과 관련이 있는 경우가 있습니다. 컨테이너의 방화벽은 기본적으로 활성화되어 있으며 모든 인바운드 및 아웃바운드 트래픽을 차단합니다.
다음 명령을 사용하여 컨테이너의 방화벽 설정을 확인할 수 있습니다.
docker exec <容器名或 ID> iptables -L
방화벽이 활성화된 경우 다음 명령을 사용하여 방화벽을 끌 수 있습니다.
docker exec <容器名或 ID> iptables -P INPUT ACCEPT docker exec <容器名或 ID> iptables -P FORWARD ACCEPT docker exec <容器名或 ID> iptables -P OUTPUT ACCEPT docker exec <容器名或 ID> iptables -F
위 명령은 컨테이너의 기본 정책을 설정한다는 의미입니다. 컨테이너의 방화벽을 수락한 다음 모든 방화벽 규칙을 지웁니다.
4. 호스트 컴퓨터의 방화벽 설정을 확인하세요
위의 세 가지 해결 방법으로 문제가 해결되지 않으면 호스트 컴퓨터의 방화벽 설정을 확인해야 합니다. 호스트의 방화벽이 올바르게 구성되지 않으면 컨테이너의 트래픽이 차단되어 컨테이너가 인터넷에 액세스하지 못할 수 있습니다.
다음 명령을 사용하여 호스트의 방화벽 설정을 확인할 수 있습니다.
iptables -L
방화벽이 활성화된 경우 다음 명령을 사용하여 호스트의 방화벽을 열 수 있습니다.
iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F
위 명령은 기본 정책을 설정한다는 의미입니다. 호스트의 방화벽 수락으로 설정한 다음 모든 방화벽 규칙을 지웁니다.
요약
즉, Docker 컨테이너가 인터넷에 액세스할 수 없는 문제가 발생하면 먼저 컨테이너의 네트워크 설정, DNS 구성 및 방화벽 설정을 확인해야 합니다. 이것이 정상이라면 호스트의 방화벽 설정을 확인해야 합니다. 오늘의 글이 Docker를 사용하면서 문제를 겪는 모든 분들께 도움이 되기를 바랍니다.
위 내용은 Docker 컨테이너가 인터넷에 액세스할 수 없는 이유와 해결 방법을 공유하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!