假如我的一个 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 你可以研究下 dcker 是怎么在 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 去做好准备 明白了 |