推荐全面版(也可解决Can‘t connect的问题):
较全面版:CentOS 8中Docker安装、启动MySQL 8
1、加速
(1) 先配置好镜像加速器,以免拉取MySQL镜像过慢
vim /etc/docker/daemon.json
(2) 在该JSON文件中添加
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
(3) 重启Docker(重启CentOS也行)
2、拉取MySQL8的镜像
去Docker Hub寻找自己需要的MySQL版本,我找的8.0.25
docker pull mysql:8.0.25
3、创建MySQL容器
docker run -di --name=mysql-8.0.25 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.25
说明:
# 为自己命名的MySQL容器名称
--name=mysql-8.0.25
# 设置MySQL登录密码
-e MYSQL_ROOT_PASSWORD=123456
# 镜像名称(与之前pull的镜像名称一致,不可乱写)
mysql:8.0.25
4、进入MySQL容器
docker exec -it mysql-8.0.25 /bin/bash
这里的mysql-8.0.25即为自己命名的容器名称
5、修改容器中的配置文件
(1) 安装vim
毕竟要修改配置文件,那vim少不了,由于这是一个新搞的镜像,相当于一个新系统,包含在CentOS中,因此CentOS有的东西不代表这个MySQL镜像就有,该安装还是得安装
apt-get update
apt-get install vim
(2) 修改my.cnf
cd /etc/mysql
vim my.cnf
在[mysqld]那一坨那几行下面添加:
[mysql]
protocol=tcp
目的:解决登录MySQL时,输入密码后出现:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
6、登录MySQL
mysql -uroot -p