查询生活在桥梁用户定义networking中的docker mysql

与docker工人,我创build一个networking和一个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,但它给我错误。 我错过了什么吗?

不幸的是,它不这样工作。 networking选项(如–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 

另一个select是使用容器mysql命令与服务器通信:

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