내가 네트워크 A로부터 컨테이너가 모두 도커 네트워크액세스 규칙은
이 같은 도커 호스트에있는 네트워크 B에 컨테이너에 액세스 할 수있는 방법을 알고 싶어요.
어디서나이 답변을 찾지 못했습니다. 또한 iptables 규칙을 사용하여 성공하지 못했습니다.
내가 네트워크 A로부터 컨테이너가 모두 도커 네트워크액세스 규칙은
이 같은 도커 호스트에있는 네트워크 B에 컨테이너에 액세스 할 수있는 방법을 알고 싶어요.
어디서나이 답변을 찾지 못했습니다. 또한 iptables 규칙을 사용하여 성공하지 못했습니다.
동일한 호스트에서 한 컨테이너에서 다른 호스트로 액세스해야하는 경우 docker run
명령이나 docker-compose.yml 파일에서 Docker의 --link
옵션을 사용하면 쉽게 얻을 수 있습니다.
각 컨테이너가 다른 컨테이너를보고 그 이름으로 참조 할 수 있습니다 (/etc/hosts에 사용자 정의 항목을 추가 한 것처럼)). 예를 들어
: docker run -d --link container1:container1 --name container2 image2:latest
이것은 당신이 (컨테이너 2에서 ping container1
을 실행 같은) 이름으로 컨테이너 2에 container1을 액세스 할 수 있습니다.
Docker 설명서에서 communication-across-links을 참조하십시오.
여러 네트워크에 컨테이너를 연결할 수 있지만 네트워크를 한 후,이를 create
연결해야하고 start
그들 일 - run
명령은 여러 네트워크를 지정할 수 없습니다. 일단 생성
> docker create --name ub1 --network net-1 sixeyed/ubuntu-with-utils sleep infinity
6bdf4f41d8484516e329e572356f1770ba3da5062bf5ab6fc584db294ef13865
> docker create --name ub2 --network net-2 sixeyed/ubuntu-with-utils sleep infinity
8424d296104e082e1d0bc1468332b3143459cba9bdeeb21d320709d51048e14d
: 지금 (이 이미지는 단지 우분투 설치 ping
같은 도구입니다) 서로 다른 네트워크에 연결하기 intially, 두 개의 컨테이너를 만들
docker network create net-1
docker network create net-2
: -
예 두 개의 네트워크를 구축 (아직 실행되지 않음) 다른 네트워크에 연결할 수 있습니다.
> docker network connect net-2 ub1
> docker network connect net-1 ub2
012 3,516,
한 다음를 시작
> docker start ub1
ub1
> docker start ub2
ub2
지금 컨테이너 이름으로 서로에 액세스 할 수 있습니다
> docker exec -it ub1 ping -c 1 ub2
PING ub2 (172.19.0.3) 56(84) bytes of data.
64 bytes from ub2.net-1 (172.19.0.3): icmp_seq=1 ttl=64 time=0.053 ms
> docker exec -it ub2 ping -c 1 ub1
PING ub1 (172.19.0.2) 56(84) bytes of data.
64 bytes from ub1.net-1 (172.19.0.2): icmp_seq=1 ttl=64 time=0.077 ms
당신은 서비스에 대한 여러 네트워크를 지정, 작성과 동일한 기능을 수행 할 수 있습니다.
예. Compose는 훨씬 덜 짜증나게합니다. – enderland
죄송합니다. Elton, 컨테이너에 2 개의 네트워크를 연결하고 싶지 않습니다. 두 컨테이너가 서로 다른 두 개의 컨테이너가 있어도 서로 통신 할 수 있기를 바랍니다. –
불행히도 이것은 작동하지 않습니다 –
세부 사항/환경 및 명령을 게시 할 수 있습니까? –