使用 mysql 的 Docker 镜像
前言
之前搞了很多都是手工在操作系统的镜像中安装使用 mysql,作为自己折腾也就算了,作为实际使用实为不妥:Docker最重要的特性就是可扩展性,把各种程序都放在一个容器里还如何扩展(当然如果用来统一开发、测试和线上环境还是可以的)。因此再来记录一下直接使用 mysql 的官方 Docker 镜像,以免回头本末倒置,瞎折腾会了,正经的使用却不会了,虽然非常简单。
1. 下载 mysql 的 Docker 镜像
使用 docker pull mysql 命令,具体的tag名称可以去 Docker Hub 的 mysql 页面 上查询。
2. 启动命令
其实 Docker Hub 的 mysql 页面已有相关的说明了,但还应该加入端口映射:
docker run --name some-mysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
3. 其它思考
官方给的原来启动命令为(并没有端口的映射):
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
连接命令也有点不同:
docker run -it --network some-network --rm mysql mysql -hsome-mysql -uexample-user -p
大概是启动一个容器,然后用里面的连接程序去连接别的容器QAQ,其中 --rm 表示容器推出后自动删除,多用于测试, --network 表示可以手工设定网络。在我本地需要执行的命令为:
docker run -it --rm mysql mysql -h 172.17.0.2 -uroot -p
官方给的 mysql 是容器的名称,尝试后发现会报错:
ERROR 2005 (HY000): Unknown MySQL server host \'mysql\' (22)
尝试换成 ip 地址后可以。
参考
- docker run --rm 的含义:https://blog.csdn.net/taiyangdao/article/details/73076770
- docker run --network 的含义:
https://www.cnblogs.com/jsonhc/p/7823286.html
https://www.cnblogs.com/zuxing/articles/8780661.html