首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在已运行的MySQL容器中将mysql docker端口映射到外部

问在已运行的MySQL容器中将mysql docker端口映射到外部
EN

Stack Overflow用户
提问于 2021-09-03 11:56:40
回答 2查看 44关注 0票数 0

让我来描述一下我的情况。

我有一个mysql docker在Azure VM中运行,如下所示:

代码语言:javascript
复制
docker ps output:

67b7d4f1eca6  2c9028880e58  "docker-entrypoint.s…"  4dayago  Up7hours(healthy) 3306/tcp, 33060/tcp mysql                                                                     


docker image ls output:
something.azurecr.io/mysql  latest  2c9028880e58    3 months ago        447MB


uname -a
Linux pradipmazure1 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

现在,正如我们所看到的,mysql不会暴露给任何外部端口,因此我可以从VM外部的工作站看到它。

我不能再重新部署整个VM,因为它是prod的一部分。

我想做一些事情,使得mysql可以潜在地暴露在同一Azure Linux VM的某个端口之外。

在这方面的任何帮助都将受到高度的感谢。

谢谢,Pradip

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-03 12:28:38

您可以将端口3306 (或您希望在其上公开MySql的任何端口)上的传入流量重定向到容器中的端口3306。容器在网桥网络上具有可从主机到达的IP地址。您可以通过运行以下命令找到容器的IP地址

代码语言:javascript
复制
docker inspect network bridge

找到IP地址后,可以使用redir重定向流量

代码语言:javascript
复制
redir --lport=3306 --caddr=172.17.0.2 --cport=3306

您需要在主机上运行redir。lport是您要侦听的端口。caddr是容器的IP地址。

为了获得更干净的解决方案,您甚至可以在新的容器中运行redir。如果您想这样做,这可能会对您有所帮助:https://hub.docker.com/r/fr3nd/redir

票数 1
EN

Stack Overflow用户

发布于 2021-09-03 11:59:16

我想到的唯一的解决方案,因为你不能重新创建MySQL容器,就是通过the deprecated --link option链接需要MySQL的容器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69044544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档