在DockerHub官网查看mysql启动的命令,发现都没有指定端口映射,于是我模仿着执行的命令如下:
docker run --name testmysql -e MYSQL_ROOT_PASSWORD=root -v /tmp/mysql/conf:/etc/mysql/conf.d -v /tmp/mysql/data:/var/lib/mysql -d mysql:5.7.25
没有指定容器端口映射的情况下,外部是无法通过ip+端口来访问容器的,需要加上端口映射,调整后的代码如下:
docker run --name testmysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /tmp/mysql/conf:/etc/mysql/conf.d -v /tmp/mysql/data:/var/lib/mysql -d mysql:5.7.25
增加了-p 3306:3306
之后,就可以通过ip+端口访问容器了。
反思:刚学习docker,有点盲目信任权威了,总觉得官方写得demo就是一定符合自己需求的,其实不然。在这个小问题上浪费个把小时,实属不应该。