mysql
的docker
仓库位于 https://hub.docker.com/_/mysql/ , 该仓库提供了 MySQL 各个版本的镜像,包括 5.6 系列、5.7 系列等。
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
$ docker run --name some-app --link some-mysql:mysql -d application-that-uses-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 run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p
通常我们也应该这样做,将业务数据保存到宿主机,避免容器删除后丢失数据,而且也可以做有效备份
通过-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
3306
,通过-p
可以将其端口映射到宿主机3306
端口,这样我们通过客户端就可以访问3306
端口连接mysql了。