Mysql 从localhost连接到正在运行的docker容器
我刚刚在mac os X上安装了docker和docker machine 我有两个正在运行的容器要从终端连接到:Mysql 从localhost连接到正在运行的docker容器,mysql,
elasticsearch,docker,docker-machine,Mysql,
elasticsearch,Docker,Docker Machine,我刚刚在mac os X上安装了docker和docker machine 我有两个正在运行的容器要从终端连接到: docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5a15af29232f mysql:latest
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
把ib放到第一个,然后docker exec-it 967 bash
放到另一个但是请记住,你需要使用docker machine
的IP地址,而不是localhost
要获得它,只需键入docker machine ip
编辑:对于要连接的每个服务,您需要通过映射(如
docker run-d)公开端口-3306:3306…
。这样就可以像mysql-u-H192.168.99.100-p一样连接mysql客户端。如果是elasticsearch,您需要执行docker run-d-p 9200:9200-p 9300:9300…
。有关更多详细信息,请查看。他明确要求连接到IP地址。不在容器内执行shell。那么如何连接到Elasticsearch和Mysql?我可以只使用mysql-h 192.168.99.100-u root
其中192.168.99.100是IP吗?我更新了我的答案,包括elasticsearch端口映射。我能够成功连接到ES。也可以连接到mysql!谢谢。