• 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": "8099"
            }]
        },

    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 居然不行,不知道为什么。

  • 相关阅读:
    实验二 结对编程 阶段二
    实验一 git代码版本管理
    hadoop启动后,9000端口无法连接,netstat -tpnl中找不到该端口
    HDFS ha 格式化报错:a shared edits dir must not be specified if HA is not enabled.
    为什么zookeeper的节点配置的个数必须是奇数个
    使用root配置的hadoop并启动会出现报错
    安装OpenCV 3 on Raspbian Jessie
    基于树莓派的专用摄像头实时监控
    第九章 构造数据类型实验
    第八章 指针实验
  • 原文地址:https://www.cnblogs.com/guoguojj/p/9404781.html
Copyright © 2020-2023  润新知