一、docker安装
yum -y install docker-io
#当前启动
systemctl start docker
#自启动
systemctl enable docker
二、docker镜像源修改(不然拉取会很慢)
阿里镜像:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
三、docker安装mysql
# 1.找镜像
docker search mysql
# 2.拉镜像
docker pull mysql:5.7
# 3.建镜像
# -p 端口映射 本机端口:容器端口
# --name:给MySQL容器取的名字
# -d:表示后台运行
# -e MYSQL_ROOT_PASSWORD:设置root用户密码
# -v:表示挂载路径,冒号左面的表示宿主机的挂载目录,冒号右边则表示容器内部的路径。
docker run -p 3306:3306 --name mysql -v /usr/local/docker/mysql/conf:/etc/mysql -v /usr/local/docker/mysql/logs:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
Tips:安装可能出现如下异常
# 异常
/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"Cannot set property TasksAccounting, or unknown property.\"".
# 解决
yum update systemd
service docker restart
四、配置外网访问权限
1.root外网连接权限配置
# 进入mysql容器
docker exec -it mysql bash
# -u后接账户 -p接密码
mysql -uroot -p123456
# 外网范围授权
grant all privileges on *.* to root@'%' identified by "password";
# 刷新权限
flush privileges;
# 一定要更新密码,否则Navicat连接报1045错误
alter user 'root'@'%' identified with mysql_native_password by '123456';
# 刷新权限
flush privileges;
2. 3306端口开放
# 1.开放3306端口正常法
systemctl start firewalld
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
# 2.直接关防火墙法(1或2选一种就行)
systemctl stop firewalld