从主机连接到mysql容器

时间:2018-08-08 08:07:27

标签: mysql docker containers

我已经在Mac上安装了docker。我有在我的本地计算机(MAC)上运行的MySQL容器。

Docker ps命令为我提供以下输出-

CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS                 PORTS                     NAMES

b5c50b2d334a   test_mysql2    "docker-entrypoint.s…"    2 hours ago     Up 2 hours (healthy)   0.0.0.0:32783->3306/tcp   test_mysql2_1

我知道将在容器中设置的mysql的用户名和密码。

我想连接到mysql并运行一些查询,但是我无法弄清楚如何连接到它。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果要通过Docker连接到MySQL吗?请按照我正在使用的分步过程进行操作。

第1步:从docker hub提取MySql映像。以下命令将提取最新的mysql映像。

cli> docker pull mysql

第2步:从该图像运行容器。 “ -name”为容器命名。 “ -e”指定您需要设置的运行时变量。使用“ MYSQL_ROOT_PASSWORD”设置MySQL root用户的密码。 “ -d”告诉泊坞窗在后台运行容器。

cli> docker run --name=testsql -e MYSQL_ROOT_PASSWORD=rukshani -d mysql 

这将输出一个容器ID;这表示该容器在后台正常运行。

第3步:然后通过发出“ docker ps”命令

来检查容器的状态
cli> docker ps

现在您应该能够看到MySQL在端口3306上运行。

步骤4 :要使用以下命令检出正在运行的容器的日志

cli > docker logs testsql

步骤5 :使用以下内容查找容器的IP。从输出中检出“ IPAddress”,它将告诉您IP地址。

cli> docker inspect testsql

现在,您应该可以使用端口3306上的tIP ip地址连接到MySQL。

根据我对您的问题的了解,这就是您所需要的。 (我希望如此)

(这不是我自己的文档,我只想记录所有内容,尤其是那些我无法理解的过程,因此,即使发生相同的事情或将来需要相同的过程,我也不会浪费我需要再次进行研究,但是我将打开我的笔记并运行命令。)

答案 1 :(得分:0)

正如您在name=***** 123 的输出中看到的那样,端口docker ps(本地计算机)被映射到docker容器内的端口32783。如果您使用的是MySQL客户端(例如MySQL Workbench),则应该能够使用ip 3306和端口localhost进行连接。如果不是,则应使用32783,然后在容器内打开一个交互式mysql shell(如mulg0r所评论)。