利用SSH桥接访问服务器的Docker运行的MySql服务

Posted 秦胜飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用SSH桥接访问服务器的Docker运行的MySql服务相关的知识,希望对你有一定的参考价值。

前情提要

docker的运用越来广泛,许多IT公司都已经将自己的服务跑在Docker上面。在安全性方面又做了一层防护。比如:跑在Docker上的mysql不做外网端口映射,只能在linux服务器上或进入docker访问mysql,这样对开发者来说是有些不方便的。
那么,其实这种情况,我们也是有办法可以做到在本地连接docker里面的MySql数据库的。

环境:

  • Linux服务器:centos 7.7
  • 服务器IP:192.168.1.5
  • 容器:docker
  • 实例IP:172.17.0.2
  • 数据库:mysqld 5.7.28
  • 数据库客户端:navicat ,sqlyog

docker运行

通常我们运行docker实例的命令如:

[root@qinshengfei ~]# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=attack docker.io/mysql

通常这样运行起来的服务有几个问题

  • 1、没有配置固定ip,这样一台服务器上跑多个docker服务,在以后重启的时候,ip地址会变
  • 2、ip没有映射,对生产环境来说这不是问题,测试环境和开发环境,这样就很不方便
  • 所以使用docker之前先做规划,是好习惯

客户端配置

sqlyog配置
  • 1、先配置SSH访问Linux服务器

技术图片

  • 2、再配置访问MySql的账号密码
    技术图片

  • 1、先配置SSH访问Linux服务器

技术图片

  • 2、再配置访问MySql的账号密码
    技术图片

总结

可能出现的问题

  • 1、SSH访问的账号密码正确与否
  • 2、访问MySql的账号密码正确与否
  • 3、运行Mysql实例的docker实例ip,是不是正确

以上是关于利用SSH桥接访问服务器的Docker运行的MySql服务的主要内容,如果未能解决你的问题,请参考以下文章

docker桥接模式

如何将 Nginx 反向代理到本地托管(在具有 ssh 访问权限的服务器上)docker-compose

SSH远程登陆docker容器

Docker部署Rstudio Server【三】:docker容器管理初步

无法使用桥接网络模式从 docker 容器连接到远程 SQL 服务器

为Docker容器中运行的gitlab添加ssh的一些问题记录