直接安装:
docker pull mysql:5.6.51
查看是否下载成功:
docker images
在本地新建待会需要挂载的文件夹:(不挂载本地目录的话,容器被删除那所有数据就没了)
mkdir -p ~/mysql
设置下读写权限
sudo chmod -R 777 ~/mysql
创建容器
docker run --name mysql_1 -p 3306:3306 -v ~/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --privileged=true -d mysql:5.6.51 --character-set-server=utf8 --collation-server=utf8_general_ci
参数说明
参数说明:
--name mysql_1:指定容器的名称为mysql_1
-p 3306:3306:主机端口和mysql容器端口映射,可在外部通过可视化工具使用主机ip+3306连接mysql容器。
-v ~/mysql:/var/lib/mysql:将 /var/lib/mysql 挂载到主机文件夹/Users/zl_vm/mysql。
什么是挂载,为什么要挂载?
挂载指的就是将设备文件(例如容器)中的目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。
-e MYSQL_ROOT_PASSWORD=root:参数设置,设置mysql的密码为root。
--privileged=true:赋予mysql容器权限,否者会挂载失败!
为什么会挂载失败?
一个容器启动成功后,里面的服务无法成功访问,这是因为centos7中的安全模块selinux把权限禁掉了。
-d:允许容器后台运行。
mysql:5.6.51:指定使用哪个mysql镜像与标签。
--character-set-server=utf8
使用utf8连接,如果需要使用utf8mb4编码,将上面出现的utf8替换成utf8mb4即可。
--collation-server=utf8_general_ci
校对规则:utf8_general_ci 按照普通的字母顺序,而且不区分大小写(比如:a B c D)
在docker上安装的Mysql不需要像brew安装的那样需要各种配置,很多都默认设置好的,比如远程连接,下图是我在windows上的MySQL管理端连接Mac Docker上MySQL的截图