【问题标题】:Connecting to mysql container from host从主机连接到 mysql 容器
【发布时间】:2018-08-08 08:07:27
【问题描述】:

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

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 并运行一些查询但是我不知道如何连接到它。任何帮助将不胜感激。

【问题讨论】:

  • 你试过docker exec -ti b5c50b2d334a bash通过cli访问吗?有很多方法可以连接它。
  • 是的,我可以通过这个登录到容器。但不知道如何进一步连接到mysql。

标签: mysql docker containers


【解决方案1】:

如果是,你想通过 Docker 连接到 MySQL;请按照我正在使用的分步程序进行操作。

步骤 1:从 docker hub 拉取 MySql 镜像。下面的命令会拉取最新的mysql镜像。

cli> docker pull mysql

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

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 上的 tIPs ip 地址连接到 MySQL。

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

(这不是我自己的文档,我只喜欢记录一切,尤其是那些我无法记住的程序,这样如果将来发生同样的事情或者我需要同样的程序,我不会浪费我有时间再次研究,但我会打开我的笔记并运行命令。)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-11-28
      • 2016-01-05
      • 1970-01-01
      • 2020-09-21
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 2018-01-09
      相关资源
      最近更新 更多