假如我的一个 docker 容器中的 mysql 只有 root@localhost 权限,我想从本地直接访问 mysql ,那么我可以通过docker exec mysql -h 127.0.0.1 -u root --exec 'insert priv'
来添加一个 admin@docker-gateway-ip 的权限,那么问题来了:
我补充下我的背景知识:
假如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 设置端口转发,是这个样子么?
1
yxwzaxns 2015-11-27 19:35:16 +08:00
ifconfig
|
2
yxwzaxns 2015-11-27 19:35:29 +08:00
我是来搞笑的
|
3
kuaiw 2015-11-27 19:49:42 +08:00
权限加好后 docker commit 生成新的 image ,以后就不用每次加权限了
|
4
morefreeze OP @kuaiw 我要加 docker 的 ip 呀 但 ip 会变的
|
5
hging 2015-11-27 19:57:28 +08:00 via iPhone
请用 link 直接连接容器 然后在容器内今天直接使用 mysql 这个 host 进行连接数据库
|
6
hging 2015-11-27 19:58:57 +08:00 via iPhone
另外 本来 mac 下就是只能用 docker 的 ip 进行访问 不能用 127.0.0.1 你可以研究下 docker 是怎么在 mac 下运行的
|
7
morefreeze OP @hging 你是怎么知道是 mac 的,难道是因为在 linux 端口是可以映射到本地的么?
|
8
odirus 2015-11-27 20:24:44 +08:00
@morefreeze 你把这个 Docker 映射到宿主机的某个端口不就行了哦。如果是运行的程序也在你本机,那就用 link 连接。
|
9
odirus 2015-11-27 20:36:36 +08:00
你也可以直接写个脚本传进 Docker ,第一次启动 Docker 的时候初始化所需的环境, https://github.com/odirus/docker-blog-deploy-example 不知道对你是否有用。
|
10
morefreeze OP @odirus 大概思路还是在 docker 里登陆 mysql 去做好准备 明白了
|