V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
morefreeze
V2EX  ›  Docker

连接 docker 容器中的 mysql 需要手动添加相应的 ip 权限 如何加?

  •  
  •   morefreeze · 2015-11-27 19:08:41 +08:00 · 4366 次点击
    这是一个创建于 3286 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假如我的一个 docker 容器中的 mysql 只有 root@localhost 权限,我想从本地直接访问 mysql ,那么我可以通过docker exec mysql -h 127.0.0.1 -u root --exec 'insert priv'来添加一个 admin@docker-gateway-ip 的权限,那么问题来了:

    1. 是不是只能这么矬的去 insert 一条数据,然后本地访问
    2. 如果 1 答案为是,那怎么获取 docker 的网关 ip 呢(注意这里一定是网关 ip ,不服请来辩)
    第 1 条附言  ·  2015-11-27 19:56:03 +08:00

    我补充下我的背景知识:

    假如docker-machine ip default返回 192.168.99.100 ,我启动时docker run -p 6666:3306,那么我在本地,需要用mysql -h 192.168.99.100 -P 6666来连,我理解我不能用-h 127.0.0.1 -P 6666 来连(实际试就不行),如果真要用 127 ,需要改 iptables 设置端口转发,是这个样子么?

    10 条回复    2015-11-28 14:52:00 +08:00
    yxwzaxns
        1
    yxwzaxns  
       2015-11-27 19:35:16 +08:00
    ifconfig
    yxwzaxns
        2
    yxwzaxns  
       2015-11-27 19:35:29 +08:00
    我是来搞笑的
    kuaiw
        3
    kuaiw  
       2015-11-27 19:49:42 +08:00
    权限加好后 docker commit 生成新的 image ,以后就不用每次加权限了
    morefreeze
        4
    morefreeze  
    OP
       2015-11-27 19:52:53 +08:00
    @kuaiw 我要加 docker 的 ip 呀 但 ip 会变的
    hging
        5
    hging  
       2015-11-27 19:57:28 +08:00 via iPhone
    请用 link 直接连接容器 然后在容器内今天直接使用 mysql 这个 host 进行连接数据库
    hging
        6
    hging  
       2015-11-27 19:58:57 +08:00 via iPhone
    另外 本来 mac 下就是只能用 docker 的 ip 进行访问 不能用 127.0.0.1 你可以研究下 docker 是怎么在 mac 下运行的
    morefreeze
        7
    morefreeze  
    OP
       2015-11-27 20:03:32 +08:00
    @hging 你是怎么知道是 mac 的,难道是因为在 linux 端口是可以映射到本地的么?
    odirus
        8
    odirus  
       2015-11-27 20:24:44 +08:00
    @morefreeze 你把这个 Docker 映射到宿主机的某个端口不就行了哦。如果是运行的程序也在你本机,那就用 link 连接。
    odirus
        9
    odirus  
       2015-11-27 20:36:36 +08:00
    你也可以直接写个脚本传进 Docker ,第一次启动 Docker 的时候初始化所需的环境, https://github.com/odirus/docker-blog-deploy-example 不知道对你是否有用。
    morefreeze
        10
    morefreeze  
    OP
       2015-11-28 14:52:00 +08:00
    @odirus 大概思路还是在 docker 里登陆 mysql 去做好准备 明白了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1472 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:12 · PVG 01:12 · LAX 09:12 · JFK 12:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.