컨테이너에 라우팅 가능한 IP를 제공하려고합니다. 내 로컬 네트워크는 192.168.1.0/24이고 컨테이너를 제공하기 위해 192.168.1.17/29를 사용하고 싶습니다.도커 컨테이너에 라우팅 가능 IP를 제공하는 방법 (호스트와 다름)?
목표는 각 컨테이너에 고유 한 IP를 갖도록하는 것입니다. 이 방법으로 두 컨테이너가 포트 80에서 웹 서버를 실행하는 경우 로컬 호스트의 다른 호스트에서 포트 80의 고유 IP를 통해 공유 호스트 IP의 다른 포트에 매핑하는 대신 직접 연결할 수 있습니다.
자체 네트워크 카드가있는 물리적 시스템이 각각 네트워크에서 192.168.1.xxx IP를 구분하는 것과 비슷합니다. 다음 산출
docker network create --subnet 192.168.1.0/24 --ip-range 192.168.1.17/29 --gateway 192.168.1.1 test_nw
:
나는이 시도 컨테이너 내에서이 경우$ docker network inspect test_nw
[
{
"Name": "test_nw",
"Id": "96bd574300059ef3710527a9bd0b3010d3b3c22d8de321ff459697eda96ab5e6",
"Created": "2017-12-06T21:50:08.591070587-05:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.1.0/24",
"IPRange": "192.168.1.17/29",
"Gateway": "192.168.1.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
을, 나는 192.168.1.1를 Ping 할 수 있지만, 나는 아무 것도 Ping 할 수 인터넷 (IP 또는 호스트 이름으로), 로컬 네트워크의 다른 장치에도 ping을 실행할 수 없습니다 (192.168.1.2는 존재하지만 연결할 수 없습니다)
호스트 (내 랩톱)는 인터넷 또는 내 로컬 네트워크에서 더 이상이 네트워크를 제거 할 때까지 docker network rm
.
분명히 뭔가 빠져 있지만 분명히 이해할 수 없습니다. 내가하려는 일을 성취 할 수있는 방법이 있습니까?
재미있는 점은, 나는 그렇게하기 위해 도커의 일이라고 생각했습니다. – springloaded
이것은 포트 매핑에서만 작동합니다. https://blog.jessfraz.com/post/ips-for-all-the-things/ 컨테이너가 공인 IP를 얻지 못하는 경우에도이를 달성하는 방법은 무엇입니까? 포트 매핑이 필요합니까? – springloaded