2017-11-22 4 views
2

Docker cloud (클라우드 공급자가 Azure)에 호스팅 된 ASP.NET Core 응용 프로그램이 있습니다. 응용 프로그램은 Hangfire을 사용하여 백그라운드에서 되풀이 작업을 실행하며 작업 중 하나는 외부 REST API에서 데이터를 요청해야합니다. 아웃 바운드 통신에 대한 어떤 시도도 실패하고, 알고 싶습니다. 어떻게 사용할 수 있는지 알고 싶습니다.Docker 컨테이너에 아웃 바운드 연결을 설정하는 방법은 무엇입니까?

배포는 연결된 컨테이너 (서비스)가 아무런 문제없이 통신 할 수 있도록 다른 컨테이너로 구성됩니다. 특별한 네트워크 구성은 없습니다. 기본 "브리지"모드가 사용됩니다. 컨테이너의 이미지에 뭔가를 구성해야합니까, 아니면 네트워크 설정을 변경해야합니까 ... 단서가 없습니다.

+0

응용 프로그램이 외부에서 액세스 할 수 있다면 restapi (IMHO)가 실패하는 이유가 표시되지 않습니다. 정확한 오류 메시지는 무엇입니까 – TheGameiswar

+0

@TheGameiswar 노출 된 포트를 통한 연결에는 도달 할 수없는 자체 REST API가 아닙니다. 예상대로 작동합니다. 도킹 된 앱의 인터넷 서비스에 대한 아웃 바운드 요청은 실패합니다 ... – Matze

+0

저는 어리 석었지만 ('Hangfire' 작업 구성 요소가 비동기 방식으로 구현되었으며 응답을 기다리는 동안 크래시를 유발 한 버그가있었습니다. (근본적인'HttpClient'가 사용 중 폐기되었습니다.) 그 문제를 해결 한 후, 아웃 바운드 통신은 예상대로 작동했습니다 ... – Matze

답변

2

특별한 네트워크 구성이 없습니다; 기본 "브리지"모드 이 사용됩니다.

설명에 따르면, VM을 사용하고 있고 도커를 실행하고있는 것처럼 보입니다. 인터넷에서이 고정 표시기에 액세스하려면 , 우리는 예를 들어, 로컬 포트에 고정 표시기 포트를 매핑해야합니다 :

docker run -d -p 80:80 my_image service nginx start 

을 우리가이 VM에 포트 80을지도 한 후, 우리는 푸른 네트워크 보안 그룹에 인바운드 규칙을 추가해야합니다 (NSG)을 추가하면이 article을 추가 할 수 있습니다.

또한 포트 80을 OS 파일 wall 인바운드 규칙에 추가해야합니다.


업데이트 : 오해에 대한

죄송합니다.

[email protected]:~# docker run -i -t centos bash 
Unable to find image 'centos:latest' locally 
latest: Pulling from library/centos 
d9aaf4d82f24: Pull complete 
Digest: sha256:4565fe2dd7f4770e825d4bd9c761a81b26e49cc9e3c9631c58cfc3188be9505a 
Status: Downloaded newer image for centos:latest 
[[email protected] /]# ping www.google.com 
PING www.google.com (172.217.3.100) 56(84) bytes of data. 
64 bytes from lga34s18-in-f4.1e100.net (172.217.3.100): icmp_seq=1 ttl=47 time=7.93 ms 
64 bytes from lga34s18-in-f4.1e100.net (172.217.3.100): icmp_seq=2 ttl=47 time=8.13 ms 
64 bytes from lga34s18-in-f4.1e100.net (172.217.3.100): icmp_seq=3 ttl=47 time=8.15 ms 
^C 
--- www.google.com ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 7.939/8.076/8.153/0.121 ms 
[[email protected] /]# ping 8.8.8.8 
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 
64 bytes from 8.8.8.8: icmp_seq=1 ttl=51 time=1.88 ms 
64 bytes from 8.8.8.8: icmp_seq=2 ttl=51 time=1.89 ms 
64 bytes from 8.8.8.8: icmp_seq=3 ttl=51 time=1.86 ms 
c64 bytes from 8.8.8.8: icmp_seq=4 ttl=51 time=1.87 ms 
64 bytes from 8.8.8.8: icmp_seq=5 ttl=51 time=1.78 ms 
64 bytes from 8.8.8.8: icmp_seq=6 ttl=51 time=1.87 ms 
^C 
--- 8.8.8.8 ping statistics --- 
6 packets transmitted, 6 received, 0% packet loss, time 5009ms 
rtt min/avg/max/mdev = 1.783/1.861/1.894/0.061 ms 
[[email protected] /]# 

내가 그것을 인터넷 커뮤니티를 할 수 발견, 당신이 나에게 보여 주시기 바랍니다 수 : 여기

, 나는 다음과 같이 다음에 CentOS 고정 표시기를 만들고, 푸른 VM (우분투 16)에 고정 표시기를 설치 내 테스트입니다 문제에 대한 추가 정보?

+0

더 많은 도움이 필요하면 저에게 알려주세요 :) –

+0

@jason -ye-msft 감사합니다. 그러나 대답은 인바운드 연결과 관련이 있습니다. 여기서는 문제가 아닙니다. 그렇지 않으면, 그것은 매우 도움이되었을 것입니다 ... – Matze

+0

@Matze 나는 내 질문을 업데이 트했습니다, 그것을 확인하십시오 :) –