동일한 네트워크에 여러 개의 도커 컨테이너가 있습니다. test01.docker 컨테이너에있는 API에서 결과를 얻기 위해 containerA에 컬을 사용하려고합니다.도커 컨테이너 : 컨테이너 사이의 말림이 작동하지 않습니다.
나는 콘테이너 A에서이 명령을 실행하여 다음과 같이
curl -s test-01.docker:8031/app?status -v
출력은 다음과 같습니다
* Hostname was NOT found in DNS cache
* Trying 172.19.0.24...
* connect to 172.19.0.24 port 8031 failed: Connection refused
* Failed to connect to test-01.docker port 8031: Connection refused
* Closing connection 0
나는 다음과 같은 명령을 사용하여 containerA에서 핑 test01.docker하려고하면
을ping test-01.docker
성공했습니다.
도커 ps를 실행하면 다음과 같은 정보가 표시됩니다. 안에 있음
43823212be7e mytestimage "/docker-entrypoint.s" 53 seconds ago Up 47 seconds 22/tcp, 2812/tcp, 5060-5061/tcp, 6970-6971/tcp, 8002/tcp, 8030-8031/tcp, 8033/tcp, 8071/tcp, 8888/tcp, 9020-9023/tcp containerA
이는 포트 8031이 노출되어 있음을 나타냅니다. 나는 이것이 컬이 왜 실패하고 있는지 알아낼 수 없다. test-01.docker에서 다음 명령을 실행하면 정확한 결과를 얻을 수 있습니다.
curl -s localhost:8031/app?status
동일한 네트워크의 다른 컨테이너에서 작동하지 않는 이유를 잘 모릅니다. 내가 뭔가를 놓친다면 말해줘.
업데이트 : 내 고정 표시기-작성 파일은 다음과 같습니다
version: '2'
services:
test-01.docker:
image: ##############
expose:
- 22
- 2812
- 8031
hostname: test-01
domainname: docker
그것을 시도하여 내부 도커 네트워크. 포트 8031은 도커 컨테이너가 서로 통신하기 위해 사용하는 인터페이스가 아닌 다른 인터페이스를 통해 호스트 시스템에 노출됩니다. – ffledgling
Dockerfiles/docker-compose.yml을 (를) 공유 할 수 있습니까? – johnharris85
@ffledgling 포트 8031을 도커 컨테이너에서 사용하는 것과 동일한 인터페이스를 통해 호스트 컴퓨터에 노출 시키려면 어떻게합니까? –