Docker 컨테이너 연결
2370 단어 docker
문제
네트워크 호출을 통해 서로 통신하려면 여러 도커 컨테이너가 필요했습니다.
해결책
"BRIDGE & OVERLAY 네트워크 모드"사용
동일한 Docker 호스트에서 컨테이너 연결
브리지 네트워크 모드 - 동일한 브리지 네트워크에 연결된 컨테이너가 통신할 수 있도록 허용하는 동시에 해당 브리지 네트워크에 연결되지 않은 컨테이너로부터 격리를 제공합니다.
"브리지"라는 기본 브리지는 항상 호스트의 모든 컨테이너 간에 생성됩니다.
다른 Docker 호스트의 컨테이너 연결
오버레이 네트워크 모드 - 이 네트워크는 호스트별 네트워크 위에 위치하여 암호화가 활성화되었을 때 연결된 컨테이너가 안전하게 통신할 수 있도록 합니다.
네트워크에 추가하려는 각 컨테이너에 대해 docker-compose 파일에 다음을 추가합니다.
networks:
- local //{network_name}
파일 끝에 다음을 추가하십시오.
networks:
local: // {network_name}
driver: bridge
마지막으로 docker-compose는 다음과 같습니다.
local-redis:
image: redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
networks:
- local
local-mongo:
image: mongo:3.2
command: ["mongod", "--smallfiles"]
ports:
- "27017:27017"
volumes:
- mongo-data:/data/db
networks:
- local
networks:
local:
driver: bridge
그리고 이것이 다른 도커 컨테이너를 호출하기 위해 네트워크 호출을 수행하는 방법입니다.
{container_name}:{container_port}
"mongo_url": "mongodb://local-mongo:27017/analytics"
"redis_host": "local-redis"
사이드 노트
컨테이너 포트 및 호스트 포트는 무엇입니까?
컨테이너 포트는 BRIDGE 또는 USER 네트워킹 모드를 사용할 때 컨테이너 내에서 사용되는 포트입니다.
호스트 포트는 바인드할 호스트 시스템의 포트를 지정합니다.
docker-compose 파일에서 다음과 같이 보입니다.
local-application:
image: ...
ports:
- "7602:7600" //{hostPort}:{containerPort}
도커 코드 내부에서 다음과 같이 호출할 수 있습니다.
"app_url": "http://local-application:7600"
도커 외부(브라우저에서)에서 다음과 같이 호출할 수 있습니다.
http://localhost:7602/
참조
Networking Types
Docker Compose Ports
Reference
이 문제에 관하여(Docker 컨테이너 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/elanchezhiyan/connect-docker-containers-2i02텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)