我是第一次使用 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连接)。
关于mysql - 如何将 MySQL 客户端与运行在 Docker 中的服务器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41374555/