我是第一次使用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发布于 2016-12-29 15:21:07
如果您需要从外部访问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进行连接)。


发布于 2016-12-29 15:02:59
如果您需要使用客户端连接Docker容器中的MySQL,则需要与宿主机进行端口映射。
我看到您的MySQL容器没有使用容器端口到主机端口的映射,因此您不能使用MySQL客户端来连接MySQL服务器。
您可以使用-p参数指定端口映射。例如,如果您需要使用端口3306连接到MySQL服务器,可以使用以下命令创建MySQL容器。PS:您需要为下面的命令更改一些设置。
docker run --name container-name -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=database-name -e MYSQL_USER=user -e MYSQL_PASSWORD=password mysql:5.7https://stackoverflow.com/questions/41374555
复制相似问题