Java 无法在docker容器之间通信-连接被拒绝

Java 无法在docker容器之间通信-连接被拒绝,java,spring,docker,docker-compose,Java,Spring,Docker,Docker Compose,我在docker compose文件中定义了n个服务的堆栈: version: "3.7" services: db: ... backend: image: $IMAGE_DEV_BACKEND container_name: "backend" hostname: backend ports: - "8888:8080" depends_on: - db networks: - backend

我在docker compose文件中定义了n个服务的堆栈:

version: "3.7"
services:
  db:
    ...
  backend:
    image: $IMAGE_DEV_BACKEND
    container_name: "backend"
    hostname: backend
    ports:
      - "8888:8080"
    depends_on:
      - db
    networks:
      - backend
  frontend:
    image: $IMAGE_DEV_FRONTEND
    container_name: "frontend"
    hostname: frontend
    depends_on:
      - backend
    networks:
      - backend
      - traefik_default
volumes:
  data:
networks:
  backend:
    driver: bridge
    external:
      name: backend
  traefik_default:
    driver: bridge
    external:
      name: traefik_default

所有容器都在同一网络中

在前端spring应用程序中,我有以下spring配置:

backend.url=http://backend:8888
当前端应用程序尝试连接到后端应用程序时,我得到

ERROR DefaultFormCommandBean:529 - Error while performing action "datastoreAction": I/O error on POST request for "http://backend:8888/oauth/token": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://backend:8888/oauth/token": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:674)
当我将主机的IP地址与docker守护进程一起使用时,一切工作都完美无缺,容器可以相互通信


如何使其与容器名称配合使用?

尝试使用
backend.url=http://backend:8080
。端口8888用于从主机访问后端,而8080是实际容器的端口。查看更多信息。

尝试使用
backend.url=http://backend:8080
。端口8888用于从主机访问后端。在这里看到更多-这是成功的!请使用答案选项,以便我将其标记为正确答案。