컨테이너에서 서비스의 IP를 설정하는 방법은 무엇입니까? 기본 네트워크의 고정 IP

컨테이너에서 서비스의 IP를 설정하는 방법은 무엇입니까? 기본 네트워크의 고정 IP

docker inspect성공적으로 호출한 출력에서 ​​컨테이너화된 Elasticsearch의 IP 주소를 사용하여탄력적 검색다른 컨테이너 내부에서 실행되는 Jupyter 노트북에서 실행되는 함수입니다. 둘 다 에 의해 만들어졌습니다 docker compose up.

하지만 내가 아는 한IP 주소 변경새로운 런타임(예: docker compose up/down).

아이피 설정이 가능한가요?예를 들어 빌드 컨텍스트에서 사용되는 elasticsearch에 docker-compose.yml무언가를 추가 하면 ?Dockerfile

docker inspect *composed-container-name-here*

"NetworkSettings": {
      "Bridge": "",
      ...
      "Ports": {
          "9200/tcp": null,
          "9300/tcp": null
      },
      ...
      "IPAddress": "",
      "Networks": {
          "*composed-container-name-here*_default": {
              "IPAMConfig": null,
              ...
              "Gateway": "172.X.X.1",
              "IPAddress": "172.X.X.3",
          }

나는 노력했다서브넷팅에 있지만 docker-compose.yml반환되었습니다 Error response from daemon: user specified IP address is supported only when connecting to networks with user configured subnets.

답변1

해결책:

services:
  a-service-here:
    ...
    networks:
      default:
        ipv4_address: x.x.x.3 # desired-ip-here

networks:
  default:
    driver: bridge
    ipam:
      config:
        - subnet: x.x.x.0/16 # includes desired-ip

관련 정보