Docker - all-spark-notebook 通信 link 失败

Docker - all-spark-notebook Communications link failure

我是 docker 和 spark 的新手。

我的docker-compose.yml文件是

volumes:
  shared-workspace:
services:
  notebook:
    image: docker.io/jupyter/all-spark-notebook:latest
    build:
      context: .
      dockerfile: Dockerfile-jupyter-jars
    ports:
      - 8888:8888
    volumes:
      - shared-workspace:/opt/workspace

Dockerfile-jupyter-jars 是:

FROM docker.io/jupyter/all-spark-notebook:latest
USER root
RUN wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar
RUN mv mysql-connector-java-8.0.28.jar /usr/local/spark/jars/
USER jovyan

它启动一个运行

docker-compose up --build

服务器已启动 运行ning,我有兴趣使用 spark-sql,但在尝试连接到 mysql 服务器时抛出错误: com.mysql.cj.jdbc.exceptions.CommunicationsException: 通信 link 失败

我可以在“jars”文件夹中看到 mysql-connector-java-8.0.28.jar,并且我在 apache 中使用了相同的 sql 指令spark 非 docker 版本并且有效。

Mysql 数据库服务器也可以从我 运行 正在 Docker 的同一台服务器访问。

我需要启用某些东西才能到达外部连接吗?有什么想法吗?

参考:https://hub.docker.com/r/jupyter/all-spark-notebook

docker-compose.yml 和 Dockerfile-jupyter-jars 文件是正确的,因为我使用的是 mysql-connector-java-8.0。28.jar 它需要 SSL 或明确禁用。

jdbc:mysql://user:password@xx.xx.xx.xx:3306/inventory?useSSL=FALSE&nullCatalogMeansCurrent=true

我将把这个例子留给:Docker - all-spark-notebook 和 MySQL 数据集