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

标签 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

最佳答案

如果需要从外部访问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

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

enter image description here enter image description here

关于mysql - 如何将 MySQL 客户端与运行在 Docker 中的服务器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41374555/

相关文章:

asp.net MySql MySqlConnection - 实现一个连接池或等效的

具有 swarm 作用域的 Docker 桥接网络不接受子网和驱动程序选项

docker - 如何将某些文件标记为 docker 是 Vscode?

docker - 如何在Kubernetes中定义网络

mysql - 在 Rails 中屏蔽图像的真实 URL

mysql - 根据查询结果从表中重新选择

docker - 如何删除 <none> 标签而不删除 docker 镜像本身?

docker - docker容器的rootfs大小是如何决定的?

php - 将表单值插入 Wordpress 数据库表 :php

mysql - 为什么我的 SQL 查询返回多行?