从宿主机连接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. 基于Saltstack、Artifactory打造传统模式下持续部署平台

    一.持续部署 1. 现状 由于没有建立标准的持续部署流程,导致了版本管理混乱,制品管理混乱,上线持续时间长,上线测试覆盖不全面,业务流量上升后故障较多,排查复杂.运维.测试.开发人员每次版本迭代的时候 ...

  2. 安装k8s和NVIDIA环境

    安装环境 系统要求 CPU: 2个核心 内存: 2GB 显卡:NVIDIA系列 安装docker apt install docker.io 安装k8s 添加软件源 方便起见,将Ubuntu的软件管理 ...

  3. 洛谷 UVA11021 Tribles

    UVA11021 Tribles 题意翻译 题目大意 一开始有kk种生物,这种生物只能活1天,死的时候有p_ipi​的概率产生ii只这种生物(也只能活一天),询问m天内所有生物都死的概率(包括m天前死 ...

  4. wannafly camp day4

    2088: 电音之王 描述 题目描述: 终于活成了自己讨厌的样子. 听说多听电音能加快程序运行的速度. 定义一个数列,告诉你a0,a1,m0,m1,ca\_0,a\_1,m\_0,m\_1,ca0​, ...

  5. VMware Workstation CentOS7 Linux 学习之路(1)--系统安装

      前言 很早就想学习Linux了,出去面试很多家公司都问会不会Linux,都很尴尬,一直没学过Linux,在网上也看过很多资料,也安装了VM,自己摸索着学习Linux,之前看网上的一些命令一顿操作, ...

  6. CSS中设置元素的圆角矩形

    圆角矩形介绍 在CSS中通过border-radius属性可以实现元素的圆角矩形. border-radius属性值一共有4个,左上.右上.左下.右下. border-radius属性值规则如下:第一 ...

  7. map转URL

    package com.psm.util; import java.util.Map; public class MapSwitchUrl { public static String getUrlP ...

  8. Windows10 java环境配置

    1.下载 JDK 下载地址:https ://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 点击下载按钮 ...

  9. libc.so.6修改链接指向后导致系统无法使用的原因及解决方法

    https://www.cnblogs.com/weijing24/p/5890031.html http://man.linuxde.net/ldconfig

  10. javascript的对象、类和方法

    1.类和对象的概念: 1.所有的事物都是一个对象,而类就是具有相同属性和行为方法的事物的集合 2.在JavaScript中建立对象的目的就是将所有的具有相同属性的行为的代码整合到一起,方便使用者的管理 ...