开发时从宿主机连接容器中的MySQL
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 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获得的⼀些信息,肯定会存在纰漏。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。