如何将 MySQL 客户端与在 Docker 中运行的服务器连接

Vol*_*il3 2 mysql docker

我第一次使用 Docker。我正在尝试将基于 docker 的 MySQL 与我的 Navicat 客户端连接。如何获取 docker IP 然后将其用于连接?以下是一些细节:

CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                      NAMES
b984b6659d20        mysql:5.7                "docker-entrypoint.sh"   8 minutes ago       Up 7 minutes        3306/tcp                                   myre_mysql_run_1
d34d8974912c        myre_php-apache-engine   "/usr/local/bin/entry"   20 hours ago        Up 7 minutes        80/tcp                                     myre_php_apache_engine_dev
981c2a7fa83b        mysql:5.7                "docker-entrypoint.sh"   20 hours ago        Up 47 seconds       3306/tcp                                   myre_mysql_dev
472531e09d08        jwilder/nginx-proxy      "/app/docker-entrypoi"   20 hours ago        Up 7 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx_proxy
Run Code Online (Sandbox Code Playgroud)

lvt*_*llo 8

如果需要从外部访问mysql容器。比您需要将容器端口映射到服务器端口(使用-p)。

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw  -e MYSQL_USER=test -e MYSQL_PASSWORD=test -d mysql:latest
Run Code Online (Sandbox Code Playgroud)

现在您可以使用服务器的 IP + 端口连接到您的容器。就我而言,我在 VLAN 中。我的服务器的 IP 是 192.168.140.30。例如,当我通过 ssh 连接到我的服务器时,我使用该 IP。现在我已经将容器的端口映射到服务器的端口上(-p 3306:3306这意味着:将容器的端口 3306 映射到服务器的端口 3306。(这样我就可以使用服务器 IP 进行连接)。

在此处输入图片说明 在此处输入图片说明