一尘不染

从一个Docker容器连接到另一个

spring-boot

我在Docker容器中运行Java应用程序,该容器应该在其他容器中连接MySQL。尝试使用表格中建议的多个选项,但实际上没有任何效果。这是我的Docker
Compose文件:

version: "3"
services:

  app:
    build:
      context: ./
      dockerfile: /src/main/docker/Dockerfile
    image: app1
    environment:
      - DB_HOST=Imrans-MacBook-Pro.local
      - DB_PORT=3306
    ports:
      - 8080:8080
    networks:
      - backend
    depends_on:
      - mysql



  mysql:
    image: mysql:5.7.20
    hostname: mysql
    environment:
      - MYSQL_USER=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
      - MYSQL_DATABASE=app1
    ports:
      - 3306:3306
    command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8 --explicit_defaults_for_timestamp
    networks:
      - backend

networks:
  backend:
    driver: bridge

DB_HOST=Imrans-MacBook-Pro.local我的笔记本电脑的名字在哪里。这没有用。有人建议可以这样尝试使用容器名称DB_HOST= mysql,但从未使用过。

唯一的事情是时不时地传递笔记本电脑的IP地址,而这不是我想要的。那么,在这些容器之间创建通信的好方法是什么?


阅读 729

收藏
2020-05-30

共1个答案

一尘不染

过去,我无需在Docker Compose中显式设置主机网络部分就可以使用它。由于Docker
Compose文件中的 Docker
映像相互放置在Docker网络中,因此您真的不需要做任何事情就可以使它工作:默认情况下,您应该能够连接到Spring应用程序的容器中并能够ping mysql解决问题。

2020-05-30