从宿主机连接Docker容器中的MySQL

刚接触Docker,电脑安装Docker后,使用docker命令pull了一个MySQL5.6的Docker镜像,之后docker run启动创建容器。

可以使用docker exec -it 命令进入到容器,也能使用mysql命令连接到数据库。

但是在使用SpringBoot连接时,连接不上,开始使用的IP172.17.0.2,确认了容器IP确实是这个,又去确认密码什么的,都不行。后来又看到有人执行docker-machine命令去获取了一个IP地址192.168.99.100这个地址,结果执行docker-machine active发现没有活跃的容器,需要创建,但是我有个正在运行的容器,很奇怪,后来看到这是两种不同的启动容器的方式。

问题没解决就继续找,其实也看到文章或者视频里直接使用的一些地址,不知道是没说明这个地址还是我没在意,反正我没想到拿本机的IP+映射的端口。还是在翻一篇博客的评论里看到有个人质疑直接拿本机的IP来连接容器中的数据库,我才想起来拿本机IP尝试下。还在尝试的时候就感觉自己有点笨,做端口映射的目的不就是为了宿主机连接的吗?

简单看了下官方的文档docker docs中的描述,直接使用的docker run这种命令属于Docker Engine的客户端命令,而docker-machine则就属于Docker Machine的客户端命令,使用Docker Machine其实也是创建一个已经存在Docker Engine的虚拟机,之后还是需要docker run这个Docker Engine命令去创建一个容器。

在老版本的Mac和Windows上需要安装Docker Machine才能使用Docker,后来有了Docker Desktop for Mac和Docker Desktop for Windows两个native application后,高版本的Mac和Windows才不需要独立安装Docker Machine,其实native application已经包含了Docker Machine。

在OS X或者Windows上运行Docker,其实还是跑在Docker创建的一个Linux虚拟机上,使用VirtualBox创建的虚拟机。

Docker Machine可以对远程主机或者云主机做批量的创建容器,毕竟如果是集群的话,不可能一个一个的执行docker run命令。

以上就是初次接触Docker获得的一些信息,肯定会存在纰漏。

开发时从宿主机连接容器中的MySQL的更多相关文章

  1. 宿主机连接docker中的mysql

    宿主机连接docker中的mysql   dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 330 ...

  2. Docker拷贝宿主机与容器中的文件

    如果我们需要将宿主机文件拷贝到容器内可以使用 docker cp 命令,也可以将文件从容器内拷贝到宿主机 将宿主机文件拷贝到容器内 docker cp 要拷贝的宿主机文件或目录 容器名称:容器文件或目 ...

  3. Navicat 远程连接Docker容器中的mysql 报错:1251 - Client does not support authentication protocol 解决办法。

    出现这个问题 首先进入 1.docker exec -it mysql02 bash      //mysql02是mysql容器的别名 2.mysql -uroot -p 3.输入密码 4.进入my ...

  4. docker环境 宿主机和容器之间复制文件

    容器往宿主机:docker cp 3234234324234:/database_dump_bak/db_bak.dmp /home/test 宿主机往容器:docker cp wenjian_001 ...

  5. 局域网内其他主机如何访问运行在宿主机的虚拟机中的Django项目(转)

    局域网内其他主机如何访问运行在宿主机的虚拟机中的Django项目     1.在宿主机cmd中查看宿主机的ip(注意区分主机中虚拟机的ip) 我连的是无线,IP如下 2.在Django项目的mysit ...

  6. Docker-使用数据卷在宿主机和容器间的数据共享

    场景一:现在用Docker创建了N个容器,但是这些容器之间需要数据共享,这个时候我们应该怎么办?[参考第四步] 场景二:docker创建了一个容器并进入容器,添加了一些定制功能,此时除了用docker ...

  7. docker 宿主机与容器直接文件移动命令

    1.将容器中的文件复制到宿主机 我们把容器中的 nginx 目录整个复制到  宿主机/usr/local/nginx 目录下,使用如下命令: docker cp nginx_test: /etc/ng ...

  8. 【Spring注解驱动开发】使用@Import注解给容器中快速导入一个组件

    写在前面 我们可以将一些bean组件交由Spring管理,并且Spring支持单实例bean和多实例bean.我们自己写的类,可以通过包扫描+标注注解(@Controller.@Servcie.@Re ...

  9. 物理机连接虚拟机中的数据库及Windows添加防火墙允许端口详细操作步骤

    公司项目中因为会使用到SQL server数据库,但是自己电脑无论安装2008R2或者2014版本都不成功,我想可能是和之前安装的一些Windows的软件存在冲突. 于是便单独创建了一台虚拟机,在虚拟 ...

随机推荐

  1. Spring学习记录5——数据库事务基础知识

    何为数据库事务 “一荣共荣,一损共损”这句话很能体现事务的思想,很多复杂的事务要分步进行,但它们组成了一个整体,要么整体生效,要么整体失效.这种思想反映到数据库上,就是多条SQL语句,要么全部成功,要 ...

  2. php获取本年、本月、本周时间戳和日期格式

    时间戳格式: //获取今日开始时间戳和结束时间戳 $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y')); $endToday=mktime(0 ...

  3. dp-完全背包

    (  推荐 : http://blog.csdn.net/insistgogo/article/details/11081025 ) 问题描述 : 已知一个容量为 V 的背包 和 N 件物品 , 第 ...

  4. Microsoft Visual Studio提示正忙如何解决

    打开项目的时候会一直提示正在加载,然后卡死,点击VS界面即出现下如图- 如图: 解决方法: 1.打开项目 找到一个叫vs的文件夹, 2.找到一个后缀是.suo的文件 把它删掉 3.关闭VS进程 重新打 ...

  5. 一文熟练使用python mock

    mock作为python测试模拟对象工具,在单元测试当中使用较多,官方文档详细不够精简,这篇文章介绍mock常用的用法,以下为引用全文,留给自己和有需要的人查阅. https://realpython ...

  6. Python工具类(一)—— 操作Mysql数据库

    如何调用直接看__main__函数里如何调用此工具类就阔以啦! # encoding=utf-8 import pymysql # 导入所有Mysql配置常量,请自行指定文件 from conf.se ...

  7. 洛谷 P1658 购物

    题目链接 题目描述 你就要去购物了,现在你手上有N种不同面值的硬币,每种硬币有无限多个.为了方便购物,你希望带尽量少的硬币,但要能组合出1到X之间的任意值. 题目分析 题目要求组合出1到X之间的任意值 ...

  8. Flask登录认证

    login函数 @app.route('/login/', methods=['GET', 'POST']) def login(): if request.method == 'GET': retu ...

  9. 2015年3月26日 - Javascript MVC 框架DerbyJS DerbyJS 是一个 MVC 框架,帮助编写实时,交互的应用。

    2015年3月26日 -  Javascript MVC 框架DerbyJS DerbyJS 是一个 MVC 框架,帮助编写实时,交互的应用.

  10. 《即时消息技术剖析与实战》学习笔记9——IM系统如何支持消息的多终端漫游

    一.什么是多终端漫游 多终端漫游是指:用户在任意一个设备登录后,都能获取到历史的聊天记录.如:QQ 默认漫游 7 天的聊天记录,开通 VIP 会员可漫游 30 天,开通 SVIP 会员可漫游 2 年. ...