Docker를 사용하여 컨테이너 환경을 구축해야 하는 개발자에게는 Linux 운영 체제에서 Docker를 사용하는 것이 좋은 선택입니다. 그러나 일부 사용자는 CentOS에서 Docker를 사용할 때 몇 가지 문제에 직면할 수 있으며, 그 중 하나는 호스트 시스템을 통해 Docker에 액세스할 수 없다는 것입니다. 이 문서에서는 이 문제가 발생하는 이유를 설명하고 몇 가지 가능한 해결 방법을 제공합니다.
1. 문제 원인
CentOS에 Docker를 설치하면 "docker0"이라는 기본 가상 브리지가 생성됩니다. 각 Docker 컨테이너는 이 브리지에 연결하고 "docker0" IP 주소 범위의 IP 주소를 사용합니다. 이러한 방식으로 호스트와 Docker 컨테이너는 공유된 "docker0" 브리지를 통해 통신할 수 있습니다. 하지만 CentOS 방화벽은 기본적으로 올바르게 구성되어 있지 않기 때문에 Docker 호스트에 접근할 수 없습니다. 이는 CentOS 방화벽이 다른 IP 주소 범위에서 들어오는 패킷을 차단하기 때문입니다.
2. 솔루션
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0 sudo firewall-cmd --permanent --zone=trusted --add-source=172.17.0.0/16 sudo firewall-cmd --permanent --zone=trusted --add-source=172.18.0.0/16 sudo firewall-cmd --reload
위 명령에서는 "신뢰할 수 있는" 영역을 정의하고 "docker0" 브리지를 추가했습니다. 또한 "172.17.0.0/16" 및 "172.18.0.0/16" IP 주소 범위의 패킷이 이 영역에 진입하는 것을 허용합니다. 마지막으로 "firewall-cmd --reload" 명령을 사용하여 새 방화벽 규칙이 즉시 적용되도록 하세요.
이 작업을 수행하려면 "/etc/docker/daemon.json" 경로에 있는 Docker 구성 파일을 편집하고 다음을 추가해야 합니다.
"dns": ["8.8.8.8", "8.8.4.4"]
이렇게 하면 Docker가 해결하는 데 도움이 되도록 컨테이너 내부에 Google DNS가 설정됩니다. DNS 이름.
Docker 버전을 확인하려면 다음 명령을 입력하세요.
$ docker version
이전 버전의 Docker를 실행 중인 경우 다음 명령을 사용하여 업그레이드할 수 있습니다.
$ sudo yum update docker
또는 Yum 저장소를 사용하여 설치하는 경우 Docker에서 권장하는 다음 명령을 사용하면 Docker 업그레이드를 수행할 수 있습니다.
$ sudo yum install docker-ce
$ docker network ls
이렇게 하면 모든 Docker 네트워크가 나열됩니다. 모든 네트워크가 "docker0"과 관련되지 않고 올바르게 구성되었는지 확인하세요.
요약
CentOS에서 Docker를 사용하면 편리한 컨테이너 환경을 제공할 수 있습니다. 그러나 일부 사용자에게 가장 일반적인 문제 중 하나는 호스트를 통해 Docker에 액세스할 수 없다는 것입니다. 이 문서에서는 방화벽 구성, Docker DNS 설정, Docker 버전 업데이트 및 Docker 네트워크 설정 검사를 포함하여 이 문제에 대한 솔루션을 설명합니다. CentOS에서 이 문제가 발생하는 경우 위 방법 중 하나를 시도하여 문제를 해결할 수 있습니다.
위 내용은 centos가 Docker 호스트에 액세스할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!