查询生活在桥接器用户定义网络中的docker mysql

时间:2017-10-30 21:29:51

标签: mysql docker networking

使用docker,我使用:

创建网络和mysql图像
 sudo docker network create --driver bridge mynet_nw
 sudo docker run --network=mynet_nw --name=mydb -v /opt/mysql_data:/var/lib/mysql --env="MYSQL_ROOT_PASSWORD=mypassword" mysql:5.7

我想跑:

 mysql -uroot -pmypassword -h ????? -P 3306

能够在mydb数据库中运行命令。代替 ?????我试过mydb,但它给了我错误。我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

不幸的是,它并没有这样做。网络选项(如--link选项)用于允许容器之间的通信。

如果要从主机进行连接,可以使用以下示例进行连接:

MYSQL_IPADD=$( docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mydb )
mysql -uroot -pmypassword -h $MYSQL_IPADD -P 3306

否则,您可以将端口3306映射到主机:

docker run --network=mynet_nw -p 3306:3306 --name=mydb -v /opt/mysql_data:/var/lib/mysql --env="MYSQL_ROOT_PASSWORD=mypassword" mysql:5.7
mysql -uroot -pmypassword -h localhost -P 3306

另一种选择是使用容器mysql命令与服务器通信:

docker run -it --network mynet_nw mysql mysql -uroot -pmypassword -h mydb -P 3306