当我尝试通过SSH隧道连接到主机机器(vServer),然后尝试通过内部Docker容器IP连接时,我无法连接到MySQL。
这是我的docker-compose文件。
version: '2'
services:
mysql:
build: ./mysql
environment:
MYSQL_ROOT_PASSWORD: test
volumes:
- ./db:/var/lib/mysql
我找到的唯一解决方案是将mysql容器的MySQL端口转发到主机上。
version: '2'
services:
mysql:
build: ./mysql
environment:
MYSQL_ROOT_PASSWORD: test
volumes:
- ./db:/var/lib/mysql
ports:
- 3306:3306
然后我能够通过主机IP直接通过TCP和端口连接MySQL,但这是没有使用SSH的。对我来说,这是一个不可行的方案,因为我不想将MySQL服务暴露在互联网上。
这里有一些原因说明为什么将MySQL端口暴露在互联网上不是一个好的做法。
那么,如何连接到我的Docker MySQL容器,并保持MySQL端口关闭是一个好的实践呢?