首页 > 解决方案 > 无法远程登录到 MariaDB 容器

问题描述

我正在使用 docker-compose 运行 MariaDB,它运行良好。我正在获取 jasper 服务器和 maria DB docker 图像并运行它们。当我远程登录 jasper 服务器映像时,它会正确响应,但是当我远程登录到 MariaDB 时,它会说:

telnet localhost 3306
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

我可能做错了什么?
这是输出sudo docker ps -a

CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                                           NAMES
9e759f106006        bitnami/jasperreports:7   "/app-entrypoint.sh …"   21 minutes ago      Up 21 minutes       0.0.0.0:9093->8080/tcp, 0.0.0.0:443->8443/tcp   ceyedev_jasperreports_1
9242e52f6af8        bitnami/mariadb:10.3      "/opt/bitnami/script…"   21 minutes ago      Up 21 minutes       3306/tcp                                        ceyedev_mariadb_1

这是我的码头工人撰写文件:

version: '2'
services:
  mariadb:
    image: 'bitnami/mariadb:10.3'
    environment:
      - MARIADB_USER=bn_jasperreports
      - MARIADB_DATABASE=bitnami_jasperreports
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - 'mariadb_data:/bitnami'
  jasperreports:
    image: 'bitnami/jasperreports:7'
    environment:
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - JASPERREPORTS_DATABASE_USER=bn_jasperreports
      - JASPERREPORTS_DATABASE_NAME=bitnami_jasperreports
      - ALLOW_EMPTY_PASSWORD=yes
    ports:
      - '9093:8080'
      - '443:8443'
    volumes:
      - 'jasperreports_data:/bitnami'
    depends_on:
      - mariadb
volumes:
  mariadb_data:
    driver: local
  jasperreports_data:
    driver: local 

标签: dockertelnet

解决方案


您必须在 Docker compose 文件中打开端口(您发布的内容称为 Docker Compose 文件,而不是 Dockerfile,后者包含构建 Docker 映像的命令)。

在该mariadb部分中使其如下所示:

services:
  mariadb:
    image: 'bitnami/mariadb:10.3'
    environment:
      - MARIADB_USER=bn_jasperreports
      - MARIADB_DATABASE=bitnami_jasperreports
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - 'mariadb_data:/bitnami'
    ports:
      - 3306

这样,MariaDB 的 3306 端口就会暴露给你的本地计算机。这表示:

  • 您可以通过 3306 端口访问 MariaDB
  • 任何可以直接通过网络访问您的计算机(即本地 IP 地址)的人都可以通过端口 3306 访问 MariaDB。

请记住关于系统安全的这两件事。


推荐阅读