从本地主机连接到 运行 docker 个容器

Connecting to running docker containers from localhost

我刚刚在 [=31 上安装了 docker & docker machine =] os X.

我有两个 运行 容器,我想从我的终端连接到:

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 地址连接到容器无济于事。

有人可以帮忙吗?

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

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

要获取它,只需键入 docker-machine ip <machineName>

编辑:对于您要连接的每个服务,您需要通过 docker run -d ... -p 3306:3306 ... 等映射公开端口。这样就可以像 mysql -u <user> -h 192.168.99.100 -p 一样连接 mysql 客户端。如果是 elasticsearch,你需要做 docker run -d ... -p 9200:9200 -p 9300:9300 ...。有关详细信息,请查看 official documentation.