이 docker0
인터페이스와 같은 물리적 서버에 가상 네트워크를 만들 것, 그 bridge
모드에 있으므로이 인터페이스 할 수있는 지역에 관련된 물리적 시스템 인터페이스 및 모든 세계뿐만 아니라입니다 귀하의 eth0
을 통해 인터넷에 연결할 수 네트워크는 eth0
물리적 인터페이스를 통과합니다.
실행중인 도커 컨테이너 내부의 인터넷이나 로컬 네트워크에 액세스하려는 경우 docker 데몬을 시작하는 동안 실제 시스템 /etc/resolv.conf
파일 당 nameserver
을 추가해야합니다. 물리적 시스템으로 액세스하는 모든 것이 도커 컨테이너로 액세스 할 수 있습니다.
도커 컨테이너를 시작하는 동안 포트를 노출해야하는 또 다른 사항은 eth0
인터페이스 덕분에 외부 도커 네트워크에서 데이터를 가져올 수 있습니다. 이 모든 구성은 iptables
의 도움을 받아 자동으로 처리됩니다. 도커는 iptables rules
을 추가하고 docker0
의 트래픽은 eth0
으로 전달하며 모든 서비스가 완벽하게 작동합니다.
예
docker run -it --name "$container_name" -d -h "$host_name" -p 9080:9080 -p 1522:1522 "$image_name"
그래서 위의 경우 내 응용 프로그램이 네트워크에있는 다른 컴퓨터 및 응용 프로그램에서 호스팅되는 포트 1522
와 oracle db
에서 데이터를 당기고에서 완벽하게 작동합니다. -p 1522:1522
에 의해 1522
물리적 컴퓨터와 실제 컴퓨터의 포트로 요청을 보내면 같은 호스트의 1522
포트에이 요청을 보내고 모든 통신이 이루어집니다.
희망적입니다.
감사합니다.
나는 이것을 빨리 시험해 볼 것이다! – 165plo
그래서 네임 서버에 혼란스러워합니다. Windows에서이 구성을위한 링크가 있습니까? 나는 docker 컨테이너에 연결된 호스트 컴퓨터에서 연결을 열어 보았습니다. 양방향입니까? – 165plo
이 링크에서'dns opts'로 도커 설정을 할 수 있습니다 https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon –