Docker가 외부 네트워크에 연결할 수 없는 문제에 대한 해결 방법:
1. 이전에 정상적으로 사용했는데 호스트는 외부 네트워크에 액세스할 수 있지만 컨테이너는 액세스할 수 없는 경우 Docker를 다시 시작해 볼 수 있습니다. 문제 해결을 위한 서비스:
>>>sercice docker restart #debian/ubutun中sh为dash,centos指bash >>>docker run -it -v /yourfile:/file -p 8000:8000 /bin/bash imageid >>>
2. docker 컨테이너는 서비스를 제공하고 포트 8888을 수신합니다. 외부 액세스를 활성화하려면 포트 매핑이 필요합니다.
docker run -it --rm -p 8888:8888 server:v1
이때 문제가 발생했습니다. 가상 머신 A에 배포한 후 8888 포트 서비스는 A에서는 액세스할 수 있지만 B에서는 액세스할 수 없습니다.
요청이 차단되었기 때문일 것입니다.
firewall-cmd --state를 확인하세요
출력이 "실행되지 않음"이면 FirewallD가 실행되지 않고 모든 보호 전략이 시작되지 않은 것이므로 연결을 차단하는 방화벽을 배제할 수 있습니다.
출력이 "실행 중"이면 현재 열려 있는 포트와 서비스를 확인하려면 다음 명령을 입력해야 한다는 의미입니다.
firewall-cmd --list-ports firewall-cmd --list-services
두 가지 해결 방법이 있습니다.
1. 서비스:
방화벽이 필요하지 않은 경우 FirewallD 서비스를 끄세요
systemctl stop firewalld.service
2. 지정된 포트를 외부 세계에 여는 정책을 추가하세요.
예를 들어 외부 5000을 열고 싶다면 /tcp 포트를 사용하면 다음 명령을 사용할 수 있습니다.
firewall-cmd --add-port=5000/tcp --permanent firewall-cmd --reload
일시적으로만 포트를 열고 명령의 첫 번째 줄에서 "--permanent" 매개변수를 제거하면 FirewallD 서비스가 다시 시작될 때 이 정책이 유효하지 않게 됩니다. .
IP 전달이 켜져 있지 않습니다
sysctl net.ipv4.ip_forward
net.ipv4.ip_forward=0이 표시되면 켜져 있지 않은 것입니다.
sysctl.conf 파일을 엽니다.
vi /etc/sysctl.conf
다음 코드를 추가합니다.
net.ipv4.ip_forward=1
더 많은 관련 튜토리얼을 보려면 PHP 중국어 웹사이트의 docker tutorial 열을 주의하세요.
위 내용은 Docker가 외부 네트워크 솔루션에 연결할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!