mac 下直接给docker容器加映射 mysql 为例
如果你是下面这种情况,本文可能回给你一些帮助
os是Mac,docker中已有mysql容器,并且已经有数据,但是没有设置映射,想要从主机连接docker 中的mysql,以便更好的查看,增加,删除数据。
-------------------------------------------------------------------------------------------------------------
docker 在os下会有2层虚拟机,一个是为docker本身的虚拟层,然后在docker里面的容器虚拟层,所以在某些文章中提到的找/var/lib/docker/这个目录在Mac上是没有的。
前提:停掉你要操作的容器
docker stop xxx
1:找到Mac中docker 的镜像路径
/Users/{YourUserName}/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux

2:进入这个目录 输入
screen tty
screen 是一个命令,连接 tty 这个虚拟机进行窗口操作,输入后你可能会看件一个白的窗口,再点下回车,就会看到交互了,如下:

3:此时你才可以进入
cd /var/lib/docker/containers
该目录下会是你的所有容器:

进入那个容器?,在本机直接输入
docker ps -a
,会有一个 CONTAINER ID,与之对应就行
4:进入这个容器,查看到如下内容

输入
cat hostconfig.json
不用vi直接编辑是因为是json格式,只有一行,在交互界面编辑起来比较麻烦,所以cat 出所有内容,复制到www.bejson.com 或者类似的json 转换工具的页面上进行修改:

找到"PortBingdings":{} 这一条,如果已经有内容了,在内容后面加逗号再加新内容,改成这样:
"PortBindings": {
"3306/tcp": [{
"HostIp": "0.0.0.0",
"HostPort": ""
}]
},
3306/tcp是你现有的端口,后面是你要映射的端口和IP,注意json里面都是双引号""
5: 复制修改后的内容
在(bejson或者类似的json转换)页面上找到json压缩---->把json压缩成一行---->再复制压缩后的json--->vi jsonconfigs.json 打开编辑json文件--->删除原来的行,复制我们修改的行,qw保存。
关掉screen, 重启开始停掉的容器,再docker ps -a 查看,PORTS这一项已经变了,

就说明成功了,接着就可以本地连接了,本地连接的时候ip输入0.0.0.0,我用navicat 连接的时候输入127.0.0.1 居然不行,不知道为什么。
mac 下直接给docker容器加映射 mysql 为例的更多相关文章
- 解决Windows10下无法对docker容器进行端口访问(端口映射的问题)
解决Windows10下无法对docker容器进行端口访问(端口映射的问题) 问题详情 在Windows10系统服务器中安装了docker和docker-compose 并尝试在其中运行Nginx服务 ...
- Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例
搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/docker-compose.html Docker-compose 多个Docker容器管理:以MYSQL ...
- Docker容器加载宿主机的hosts解析
前言 公司一直在用传统的tomcat下丢war包的架构体系,随着项目的增多.服务器数量的增多.需要为此花费很多时间在不同服务器的系统环境问题上.为了技术的与时俱进和工作的运维效率等方面,笔者引入doc ...
- 实现Mac主机上的Docker容器中的图形界面显示(运行GUI应用)
我有一个需求: 一方面,我需要在 Docker 容器环境下运行应用(因为有些环境在 Mac 下很难安装配置,并且希望环境干净隔离). 另一方面,容器中的应用又需要进行图形界面的显示. 由于 Docke ...
- 分布式进阶(七)Ubuntu下如何进入 Docker 容器
如何进入 Docker 容器 英文原文:How to enter a Docker container 在这篇文章里,我将讨论四种连接Docker容器并与其进行交互的方法.例子中所有的代码都可以在Gi ...
- mac系统上访问docker容器中的ip配置
使用 mac系统,发现docker没有 docker0网桥,无法直接在宿主机上 访问 容器的ip, 在测试的时候有这种需求,而不是通过-p的方式,可以参考下面的连接,主要就是 修改 setting.j ...
- 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 ...
- 解决mac主机无法与 Docker容器互通问题
方法很多,这里我说一下使用 docker-connector解决这个问题 这是一个github开源项目docker-connector 1. Mac 通过 brew 安装 docker-connec ...
- 【docker】追加docker容器端口映射的方法
docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改.通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射. 但这样太麻烦了.现在有新方案来解决掉: ...
随机推荐
- RK3399 友善NanoPC-T4开发板使用sysfs方法控制status LED状态灯-【申嵌视频-RK3399篇】
实验1:sysfs 操作方法控制NanoPC-T4开发板上LED灯 (status LED状态灯:GPIO0_B5/LED1_OUT)root@NanoPC-T4: cd /sys/class/led ...
- WebService客户端(以命令方式创建)
以命令的方式生成WebService客户端: 创建一个Project项目,客户端项目名称WS_Client,在cmd界面进入JDK的bin目录,输入以下命令 完整格式: C:\Program File ...
- 【C++】类中this指针的理解
转自 苦涩的茶https://www.cnblogs.com/liushui-sky/p/5802981.html C++类中this指针的理解 先要理解class的意思.class应该理解为一种类型 ...
- Reduce TIME_WAIT
see time wait number netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n vi /etc/sysctl.conf ...
- C# 6.0:String Interpolation
在开发中经常需要对字符串进行格式化处理.我们一般使用String.Format()方法,它会将指定字符串中的每个格式项替换为相应对象的值的文本等效项.虽然这很普通,但有时会容易使人迷惑并造成错误.因为 ...
- [UE4]Skeletal Mesh的碰撞体
一.骨骼模型和骨骼碰撞体肯定不是完全吻合的,因为骨骼模型太复杂了. 二.骨骼碰撞体编辑在Physics Asset资源中 三.Constraints:只显示碰撞体 四.对于射击游戏来说,这样的碰撞体完 ...
- Unity Input,生命周期,Light,获取组件
1. 递归方法遍历获取指定子物体 知识点:递归的使用:transform.childCount.GetChild(index) 2. Input输入控制类,检测玩家输入 知识点: Input ...
- 数学模块_math
ceil 进一, 向上取整 floor 向下取整 pow(x, y) x的y次方 print(math.pow(2, 3)) # 8.0 sqrt(x) x的开平方(结果为浮点数) print(mat ...
- 初学者常用的LINUX命令
测试初学者常用的LINUX命令 一.常用管理命令:1. shutdown -h now 关机命令2. shutdown -r now (reboot) 立即重启命令 3. clear 清屏命令 4. ...
- Redis主从+读写分离中可以在从机读取到过期数据
参考链接: https://mp.weixin.qq.com/s?__biz=MzIyNzUwMjM2MA==&mid=2247483696&idx=1&sn=c69e364b ...