让我来描述一下我的情况。
我有一个mysql docker在Azure VM中运行,如下所示:
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
发布于 2021-09-03 12:28:38
您可以将端口3306 (或您希望在其上公开MySql的任何端口)上的传入流量重定向到容器中的端口3306。容器在网桥网络上具有可从主机到达的IP地址。您可以通过运行以下命令找到容器的IP地址
docker inspect network bridge找到IP地址后,可以使用redir重定向流量
redir --lport=3306 --caddr=172.17.0.2 --cport=3306您需要在主机上运行redir。lport是您要侦听的端口。caddr是容器的IP地址。
为了获得更干净的解决方案,您甚至可以在新的容器中运行redir。如果您想这样做,这可能会对您有所帮助:https://hub.docker.com/r/fr3nd/redir
发布于 2021-09-03 11:59:16
我想到的唯一的解决方案,因为你不能重新创建MySQL容器,就是通过the deprecated --link option链接需要MySQL的容器。
https://stackoverflow.com/questions/69044544
复制相似问题