여러 IP 주소가 있는 Docker 노드 - IP 주소 간 전환

여러 IP 주소가 있는 Docker 노드 - IP 주소 간 전환

내 네트워크 구성은 Docker 호스트에서 다음과 같습니다.

➜  server git:(master) ✗ ip addr
3: ens9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:02:c9:bb:3b:f4 brd ff:ff:ff:ff:ff:ff
    inet <IP Address>.18/29 brd <Default Gateway>.23 scope global ens9
       valid_lft forever preferred_lft forever
    inet <IP Address>.19/29 brd <Default Gateway>.23 scope global secondary ens9:0
       valid_lft forever preferred_lft forever

443현재 IP 주소 의 포트에서 Docker가 아닌 기존 서비스가 실행 중이므로 .18그대로 유지해야 합니다. 그러나 을 사용하여 포트를 열면 포트가 이미 호스트에서 사용 중이기 Dockerfile때문에 시작되지 않습니다 .443

Docker가 포트를 열 때 사용하는 IP 주소를 전역적으로 전환하는 방법이 있습니까? 물론 이미 작동하고 있는 각 컨테이너의 구성 파일에 이를 수동으로 설정하고 싶지 않습니다.

답변1

서비스 선언의 특정 컨테이너에 액세스하기 위해 포트를 노출할 필요는 없습니다. 실제로 다음과 같이 다른 서브넷을 사용하여 단일 docker-compose.yml 내에서 네트워크를 선언할 수 있습니다.

version: '2'

networks:
  custom-network:
    ipam:
      driver: default
      config:
        - subnet: 73.0.0.0/16
          ip_range: 73.0.0.0/24
          gateway: 73.0.0.254

services:
  simple-nginx:
    image: nginx
    networks:
      custom-network:
        ipv4_address: 73.0.0.10

73.0.0.10그리고 맞춤형 네트워크의 고정 IP를 사용하여 nginx 서비스에 액세스합니다 .

자세한 내용은 언제든지 docker-compose에 대한 네트워킹 문서를 확인하세요. https://docs.docker.com/compose/networking/

또는 직접 docker 문서를 참조하세요. https://docs.docker.com/engine/userguide/networking/

관련 정보