开发时从宿主机连接容器中的MySQL
从宿主机连接Docker容器中的MySQL
刚接触Docker,电脑安装Docker后,使用docker命令pull了一个MySQL5.6的Docker镜像,之后docker run启动创建容器。
可以使用docker exec -it 命令进入到容器,也能使用mysql命令连接到数据库。
但是在使用SpringBoot连接时,连接不上,开始使用的IP是172.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的更多相关文章
- 宿主机连接docker中的mysql
宿主机连接docker中的mysql dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 330 ...
- Docker拷贝宿主机与容器中的文件
如果我们需要将宿主机文件拷贝到容器内可以使用 docker cp 命令,也可以将文件从容器内拷贝到宿主机 将宿主机文件拷贝到容器内 docker cp 要拷贝的宿主机文件或目录 容器名称:容器文件或目 ...
- 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 ...
- docker环境 宿主机和容器之间复制文件
容器往宿主机:docker cp 3234234324234:/database_dump_bak/db_bak.dmp /home/test 宿主机往容器:docker cp wenjian_001 ...
- 局域网内其他主机如何访问运行在宿主机的虚拟机中的Django项目(转)
局域网内其他主机如何访问运行在宿主机的虚拟机中的Django项目 1.在宿主机cmd中查看宿主机的ip(注意区分主机中虚拟机的ip) 我连的是无线,IP如下 2.在Django项目的mysit ...
- Docker-使用数据卷在宿主机和容器间的数据共享
场景一:现在用Docker创建了N个容器,但是这些容器之间需要数据共享,这个时候我们应该怎么办?[参考第四步] 场景二:docker创建了一个容器并进入容器,添加了一些定制功能,此时除了用docker ...
- docker 宿主机与容器直接文件移动命令
1.将容器中的文件复制到宿主机 我们把容器中的 nginx 目录整个复制到 宿主机/usr/local/nginx 目录下,使用如下命令: docker cp nginx_test: /etc/ng ...
- 【Spring注解驱动开发】使用@Import注解给容器中快速导入一个组件
写在前面 我们可以将一些bean组件交由Spring管理,并且Spring支持单实例bean和多实例bean.我们自己写的类,可以通过包扫描+标注注解(@Controller.@Servcie.@Re ...
- 物理机连接虚拟机中的数据库及Windows添加防火墙允许端口详细操作步骤
公司项目中因为会使用到SQL server数据库,但是自己电脑无论安装2008R2或者2014版本都不成功,我想可能是和之前安装的一些Windows的软件存在冲突. 于是便单独创建了一台虚拟机,在虚拟 ...
随机推荐
- CF449B Jzzhu and Cities 迪杰斯特拉最短路算法
CF449B Jzzhu and Cities 其实这一道题并不是很难,只是一个最短路而已,请继续看我的题解吧~(^▽^) AC代码: #include<bits/stdc++.h> #d ...
- 《【面试突击】— Redis篇》-- Redis哨兵原理及持久化机制
能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis哨兵原理及持久化机制 在这个系列里, ...
- 2018 CCPC 网络赛
The Power Cube is used as a stash of Exotic Power. There are n cities numbered 1,2,…,n where allowed ...
- 如何清理 Docker 占用的磁盘空间
Docker 很占用空间,每当我们运行容器.拉取镜像.部署应用.构建自己的镜像时,我们的磁盘空间会被大量占用. 如果你也被这个问题所困扰,咱们就一起看一下 Docker 是如何使用磁盘空间的,以及如何 ...
- Java入门 - 面向对象 - 04.抽象类
原文地址:http://www.work100.net/training/java-abstract.html 更多教程:光束云 - 免费课程 抽象类 序号 文内章节 视频 1 概述 2 Java抽象 ...
- Egret学习-TiledMap使用
环境说明: 引擎版本:5.2.4 Egret Wing 4.1.6 1.下载依赖,下载地址https://github.com/egret-labs/egret-game-library/tree/m ...
- 学习 lind api 十月 第一弹
step one 我们来看一下代码的结构
- 绕过路由系统 (Bypassing the Routing System)| 高级路由特性
- CSRF攻击原理
CSRF CSRF(Cross-site request forgery)跨站请求伪造,CSRF是一种夹持用户在已经登陆的web应用程序上执行非本意的操作的攻击方式.相比于XSS,CSRF是利用了系统 ...
- oracle问题之死锁 (一)
[前言] 遇到 oracle 异常 和 解决实践 系列文章 整理分享 杂症一.oracle死锁 一.症状: 执行SQL或程序时,程序没有响应或SQL执行一直处于执行状态,没有成功,也没有报错. 二.病 ...