下载
docker pull mysql:5.6
查看镜像
docker images
创建文件夹保存数据
mkdir -p /data/mysql/conf (保存mysql配置文件)
mkdir -p /data/mysql/data (保存mysql数据)
mkdir -p /data/mysql/log (保存mysql日志)
创建容器
sudo docker run -p 3306:3306 --name mysql -v /data/mysql/conf:/etc/mysql -v /data/mysql/log:/var/log/mysql -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
参数说明:
-p 3306(本机端口):3306(容器端口) 将容器3306的端口映射到本机的3306端口
--name mysql 为创建的容易命名
-v /data/mysql/conf:/etc/mysql 将本地文件夹映射到容器的文件夹里
-e MYSQL_ROOT_PASSWORD=12345678 设置root的密码
-d 指定创建容器的image
创建容器时[Warning] IPv4 forwarding is disabled. Networking will not work.
在docker的宿主机中更改以下
[root@localhost ~]# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
[root@localhost ~]# systemctl restart network
进入容器
sudo docker exec -it mysql(前面容器的name) /bin/bash
登录mysql
mysql -uroot -p123456
创建远程连接账号
mysql> GRANT ALL PRIVILEGES ON *.* TO 'name'@'%' IDENTIFIED BY 'pwd';
mysql> flush privileges;
关闭防火墙
1.查看已开放的端口(默认不开放任何端口)
firewall-cmd --list-ports
2.开启3306端口
firewall-cmd --zone=public(作用域) --add-port=3306/tcp(端口和访问类型) --permanent(永久生效)
3.重启防火墙
firewall-cmd --reload
关闭删除容器
docker stop mysql(容器名)
docker rm mysql(容器名)