Docker가 외부 네트워크를 ping할 수 없는 이유와 해결 방법

PHPz
풀어 주다: 2023-04-17 16:59:04
원래의
5273명이 탐색했습니다.

Docker를 사용하다 보면 다양한 문제에 직면하게 되는데, 그 중 하나가 Docker 내에서 외부 네트워크의 ping에 도달할 수 없다는 것입니다. 이 문제는 매우 흔하지만, 외부 리소스에 연결하지 못하게 할 수도 있기 때문에 심각하기도 합니다.

Docker가 외부 네트워크를 ping할 수 없는 데에는 여러 가지 이유가 있습니다. 다음은 몇 가지 일반적인 해결 방법입니다.

  1. 네트워크 설정 확인

먼저 Docker의 네트워크 설정이 올바른지 확인해야 합니다. Docker 컨테이너를 실행할 때 네트워크 모드를 지정해야 하는 경우가 많습니다. 네트워크 모드가 올바르게 지정되지 않으면 Docker가 외부 네트워크에 연결하지 못할 수 있습니다.

다음 명령을 사용하여 Docker의 네트워크 설정을 볼 수 있습니다.

docker network inspect
로그인 후 복사

이 명령을 사용하면 Docker의 모든 네트워크 설정을 볼 수 있습니다. 네트워크 설정이 잘못된 경우 다음 명령을 사용하여 네트워크를 재설정해야 합니다.

docker network create \
    --driver bridge \
    --subnet 192.168.0.0/16 \
    mynetwork
로그인 후 복사

위 명령은 mynetwork라는 Docker 네트워크를 생성하고 서브넷을 192.168.0.0/16으로 설정합니다.

  1. 방화벽 설정을 확인하세요

방화벽 설정으로 인해 Docker가 외부 네트워크에 ping을 수행하지 못할 수 있습니다. Docker 액세스가 허용되는지 확인하려면 방화벽 설정을 확인해야 합니다.

방화벽 설정에 일반적으로 사용되는 도구는 iptables입니다. 다음 명령을 사용하여 iptables 설정을 확인할 수 있습니다.

sudo iptables -L
로그인 후 복사

Docker의 네트워크 액세스를 차단하는 규칙이 있는 경우 다음 규칙을 추가해야 합니다.

sudo iptables -A INPUT -p tcp --dport 2375 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 2375 -j ACCEPT
로그인 후 복사

위 명령은 Docker의 네트워크 액세스를 허용하는 규칙을 추가합니다.

  1. DNS 설정 확인

DNS 설정으로 인해 Docker가 외부 네트워크에 연결되지 않을 수 있습니다. Docker의 DNS 설정이 올바른지 확인해야 합니다.

Docker의 DNS 설정을 보려면 다음 명령을 사용하세요.

docker exec -it container_id cat /etc/resolv.conf
로그인 후 복사

여기서 Container_id는 확인할 Docker 컨테이너의 ID입니다.

DNS 설정이 잘못된 경우 Docker의 /etc/docker/daemon.json 파일에 올바른 DNS 서버 주소를 추가할 수 있습니다.

{
  "dns": ["1.1.1.1", "8.8.8.8"]
}
로그인 후 복사

위 설정은 1.1.1.1 및 8.8.8.8이 DNS 서버로 사용됨을 나타냅니다. 구애.

  1. Docker 엔진 버전 확인

마지막으로 Docker 엔진 버전이 네트워크 연결을 지원하는지 확인해야 합니다.

일부 이전 버전의 Docker 엔진에는 네트워크 연결 문제가 있을 수 있습니다. 이 문제를 방지하려면 최신 버전의 Docker 엔진으로 업그레이드해야 합니다.

다음 명령을 사용하여 Docker 엔진 버전을 확인하세요.

docker version
로그인 후 복사

버전이 최신이 아닌 경우 다음 명령을 사용하여 Docker 엔진을 업그레이드해야 합니다.

sudo apt-get update
sudo apt-get install docker-ce
로그인 후 복사

위 명령을 사용하면 Docker 엔진이 최신 버전으로 업데이트됩니다. 버전을 확인하고 네트워크 연결 문제를 해결하세요.

결론적으로 Docker 내에서 외부 네트워크에 ping을 할 수 없는 문제에는 여러 가지 이유가 있을 수 있습니다. 위의 해결 방법에 따라 하나씩 문제를 해결해야 합니다. 문제의 근본 원인을 확인해야만 네트워크 연결 문제를 효과적으로 해결할 수 있습니다.

위 내용은 Docker가 외부 네트워크를 ping할 수 없는 이유와 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿