使用Docker安装mysql,挂载外部配置和数据
参考博客:https://blog.csdn.net/woniu211111/article/details/80968154
这里我们从https://hub.daocloud.io/上拉取mysql-5.6.22镜像,创建容器并挂载外部配置和数据
常规安装
- 从DaoCloud上拉取镜像(推荐):
docker pull daocloud.io/library/mysql:5.6.22
- 创建并后台启动mysql容器:
docker run --name mysql-5.6 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d daocloud.io/library/mysql:5.6.22
添加一些其他参数
docker run -d -p 3306:3306 -e MYSQL_USER="woniu" -e MYSQL_PASSWORD="123456" -e MYSQL_ROOT_PASSWORD="123456" --name mysql-5.6 daocloud.io/library/mysql:5.6.22 --character-set-server=utf8 --collation-server=utf8_general_ci
参数说明:
-e: 为当前容器添加一个环境变量
-p: 将容器中mysql端口映射到宿主机指定的端口中
-d: 让MySQL容器在后台启动,不去占用前台的进程
-e MYSQL_USER="woniu" :添加woniu用户
-e MYSQL_PASSWORD="123456":设置添加的用户密码
-e MYSQL_ROOT_PASSWORD="123456":设置root用户密码
--character-set-server=utf8:设置字符集为utf8
--collation-server=utf8_general_cli:设置字符比较规则为utf8_general_cli
挂载外部配置和数据安装(在虚拟机上):
可以参考我之前的一篇博客:https://blog.csdn.net/xzxToney/article/details/105401604
- 在本地虚拟机上创建文件目录和配置文件
mkdir /docker
mkdir /docker/mysql
mkdir /docker/mysql/conf
mkdir /docker/mysql/data
创建my.cnf配置文件
touch /docker/mysql/conf/mysqld.cnf
通过普通方式创建mysql容器后查看配置文件,复制内容并保存。
- 创建并后台启动mysql-5.6容器,挂载外部配置
docker run --name mysql-5.6 -p 3306:3306 -v /docker/mysql-5.6.22/conf/my.cnf:/etc/mysql/conf.d/my.cnf -v /docker/mysql-5.6.22/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d daocloud.io/library/mysql:5.6.22
参数说明:
--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
-v /docker/mysql/conf/mysql.cnf:mysql.conf.d/mysqld.cnf:映射配置文件
-v /docker/mysql/data:/var/lib/mysql:映射存储数据目录