【问题标题】:Connecting to local DB while running docker container在运行 docker 容器时连接到本地数据库
【发布时间】:2019-05-01 15:45:09
【问题描述】:

我正在从 docker 容器运行应用程序,并且在某些时候,我已将 Sequel Pro 连接到我的本地数据库,但自从重新安装 Sequel Pro 后,我没有运气连接回我的本地数据库。我在哪里可以找到用于此目的的 IP/端口?我尝试连接到 127.0.0.1 并尝试使用docker inspect (container name) 中列出的 IP 地址,但无济于事。

【问题讨论】:

  • 数据库是直接在主机上运行,​​还是在同级容器中运行?
  • 它是同级容器。
  • 如果它在容器中运行,请执行docker exec -it container-name /bin/bash 其中container-name 是docker ps 中列出的容器名称
  • @nootdev 然后呢?我想再次连接到 Sequel Pro 上的数据库。我有它但丢失了设置,因为我必须在几周前卸载该程序。
  • 你需要在本地公开端口,如果你正在使用,你可以通过在你的DockerFile中使用EXPOSE 3306来做到这一点。一个端口是暴露的,你应该可以通过localhost 连接到它

标签: mysql docker docker-compose sequelpro


【解决方案1】:

如果您在容器内寻址localhost(或127.0.0.1),您指的是容器内的localhost,而不是系统。

您可以使用docker networks。如果您在同一个网络中运行容器(手动添加或使用撰写文件),您可以在网络内像service name:port 一样寻址。 Ports 没有为此在外部发布(但如果您想从系统中恢复数据库,则很有用)。

另一种方法是在网络模式host 下运行您的容器。在这种情况下,您在 docker 守护程序的网络接口上运行并且可以使用localhost。但你会失去一些孤立感。

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2020-11-14
    • 2023-03-19
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    相关资源
    最近更新 更多