当前位置: 首页 > 知识库问答 >
问题:

Docker:向主机公开正在运行的容器[复制]

司空温书
2023-03-14

我有一个正在运行的MySQL容器,我在里面导入了很多数据(花了我几个小时)。

现在,我想在主机上使用GUI应用程序(DBeaver)从这个容器中查询数据。有没有一种方法可以将正在运行的容器的网络公开给主机,以便连接到它?

我一直在四处寻找,到目前为止最有希望的选择是运行docker run一个带有-p标签3306:3306的新容器,但是当我这样做的时候,所有导入的数据都不见了。

谢谢你!

共有2个答案

柯捷
2023-03-14

从运行容器创建一个新的mysql映像,并使用暴露的端口运行新映像。您可以通过使用docker提交来做到这一点。运行带有暴露端口的新映像,您的数据将被保存。使用

 docker commit <CONTAINER_ID> mysql-with-data:latest

不要停止运行容器,直到完成提交-

陆栋
2023-03-14

我找到了答案。哦,顺便说一下,我不知道为什么这个问题被否决了,这是一个完全合法的问题(该死的…)

  1. 查找容器的IDdocker ps

现在我可以在主机0.0上连接到mysql客户端。端口上的0.03306

 类似资料:
  • 主机:Mac OS X 10.10.5 Docker 1.10.1 我做过这样的事: 步骤1:为永久postgres数据创建卷 -->没有打开端口5432 更新2:更陌生。我也这样做过: 阻止Docker。然后,在我的主机中运行一个普通的PostgreSQL 9.4.4实例(这里不涉及docker,只在Mac OS X主机中运行postgres,监听端口5432)。一切正常: 为什么? 有道理吗?

  • 我可能遗漏了一些可笑的东西,但我试图向我的主机(Mac)公开的每个docker容器似乎都不起作用。我可以看出这些容器正在运行,并且似乎已经正确地暴露在我选择的端口中。我错过了什么明显的东西吗?任何帮助都将不胜感激。 我下载了最新的ElasticSearch图像:https://www.elastic.co/guide/en/elasticsearch/reference/current/docke

  • 请考虑以下 我将端口连接到主机,以便管理我的服务,但这些服务只需使用默认的docker网络就可以相互访问。例如,运行在上的程序可以访问并且一些DNS魔术将使其工作。我想将我的主机添加到这个网络中,这样我就可以通过其主机名:port访问容器的端口。

  • 如果我有一个mysql数据库在某台主机上运行,并且该主机也在运行docker容器:我将如何从主机上运行的docker容器中访问mysql数据库?。 有没有一种方法可以将主机端口发布到容器(与docker run-p的功能相反)?

  • 我想挂载我的usb驱动器到一个正在运行的docker实例,手动备份一些文件。 我知道的特性,但这会创建一个新的容器。注意:它是一个nextcloudpi容器。

  • 问题内容: 我看到很多人都在为此苦苦挣扎,好像在redis容器映像中可能有一个错误,而其他人似乎在追寻类似的问题。 我在DockerHub上使用标准Redis映像。(https://github.com/dockerfile/redis) 像这样运行它: 进入服务器后,就可以启动服务器,并从容器映像进行Redis ping了。 不幸的是,我无法从主机连接到Redis容器。 我已经尝试设置,例如下面