mysql
的docker
仓库位于 https://hub.docker.com/_/mysql/ ,
该仓库提供了 MySQL 各个版本的镜像,包括 5.6 系列、5.7 系列等。
基本使用方法
Start a mysql server instance
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
Connect to MySQL from an application in another Docker container
$ docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql
Connect to MySQL from the MySQL command line client
通过其他命令行连接mysql
$ docker run -it --link some-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
通过一个临时docker镜像来连接
$ docker run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p
将mysql文件保存到宿主机
通常我们也应该这样做,将业务数据保存到宿主机,避免容器删除后丢失数据,而且也可以做有效备份
通过-v
参数指定宿主机一个目录到mysql容器目录的映射。mysql容器目录为/var/lib/mysql
。
$ docker run --name some-mysql -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
常用启动方法
可以参考我的启动命令来创建mysql容器
$ docker run --name my-mysql -p 3306:3306 -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
说明
- --name: 指定容器名称
-
-p: 指定mysql服务容器端口到宿主机端口映射。mysql容器默认端口是
3306
,通过-p
可以将其端口映射到宿主机3306
端口,这样我们通过客户端就可以访问3306
端口连接mysql了。 - -v: 指定mysql容器中目录到宿主机目录的映射