从localhost连接到正在运行的docker容器

时间:2015-08-13 16:33:27

标签: mysql elasticsearch docker docker-machine

我刚刚安装了 docker & mac os X上的 docker machine

我想从终端连接两个正在运行的容器:

docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS                    NAMES
5a15af29232f        mysql:latest        "/entrypoint.sh mysql"   28 minutes ago      Up 28 minutes                  0.0.0.0:3306->3306/tcp   hopeful_fermi
967f240e77d1        elasticsearch       "/docker-entrypoint.s"   About an hour ago   Up About an hour               9200/tcp, 9300/tcp       jolly_swartz

我不确定如何从我的mac os X终端连接到elasticsearch和mysql ......

我已在两个容器上尝试docker inspect,以确定IP地址是什么,并使用该IP地址连接到容器无济于事。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

但请注意,您需要使用docker-machine的IP地址而不是localhost

要获得它,只需输入docker-machine ip <machineName>

修改:对于您要连接的每项服务,您需要通过docker run -d ... -p 3306:3306 ...等映射公开端口。这样就可以连接像mysql -u <user> -h 192.168.99.100 -p这样的mysql客户端。如果是弹性搜索,您需要执行docker run -d ... -p 9200:9200 -p 9300:9300 ...。有关详细信息,请查看official documentation

答案 1 :(得分:0)

尝试docker exec -it 5a1 bash获取ibto第一个,docker exec -it 967 bash进入另一个