使用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数据库中运行命令。而不是?我试过我的数据库,但它给我带来了错误。我是不是遗漏了什么?
发布于 2017-10-30 21:50:59
不幸的是它不是这样工作的。网络选项(如-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 3306https://stackoverflow.com/questions/47024465
复制相似问题