Spring Boot部署后无法通过hostname访问处在容器中的Nacos

发布于 2022-09-12 23:40:27 字数 2085 浏览 21 评论 0

场景:jar包和nacos都部署在docker容器中。
配置文件:

spring:
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: service_nacos:8848
      config:
        # 配置中心地址
        server-addr: service_nacos:8848

上述通过hostname无法访问nacos,但是把它改成容器的虚拟IP就可以访问了,我通过docker container inspect service_nacos查询发现hostname是配置了的:

{
  "Config": {
    "Hostname": "service_nacos"
  },
  "NetworkSettings": {
    "Networks": {
      "web_common": {
        "IPAddress": "172.25.0.5"
      }
    }
  }
}

通过虚拟IP访问的问题是,容器每次启动IP是重新分配的,希望还是通过hostname访问。

有朋友知道什么原因吗?


补充:
docker-compose-base.yml

version: "3"
services:
  service_nacos:
    hostname: service_nacos
    container_name: service_nacos
    image: nacos/nacos-server:2.0.0-bugfix
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=service_mysql
      - MYSQL_SERVICE_DB_NAME=funadmin_config
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=a123456
    volumes:
      - ./nacos/log/:/home/nacos/logs
      - ./nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8848:8848"
    restart: on-failure
    networks:
      - web_common

networks:
  web_common:
    external: true

docker-compose-services.yml

version: "3"
services:
  service_gateway:
    hostname: service_gateway
    container_name: service_gateway
    build: ./services/gateway
    image: funadmin-gateway:1.0
    ports:
      - "8080:8080"
    external_links:
      - service_redis
      - service_nacos
      - service_mysql
    networks:
      - web_common

networks:
  web_common:
    external: true

Dockerfile:

FROM java:8

COPY . /usr/src/funadmin/gateway
WORKDIR /usr/src/funadmin/gateway

ENTRYPOINT ["java","-Dspring.profiles.active=prod","-jar","funadmin-gateway.jar"]
EXPOSE 8080

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

季末如歌 2022-09-19 23:40:27

可以让注册中心运行在host网络模式下,其他微服务通过节点ip注册。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文