启动 Docker 后台服务
sudo systemctl start docker
下载mysql docker镜像
docker pull mysql:5.7
启动mysql的容器
docker run -d --name mysqlserver -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.7
docker run [option] IMAGE [COMMOND] [ARG...]
# -d: 后台启动容器; --name:容器的别名,默认为随机的 -p 端口映射 ,设置mysql密码为123456
进入mysql
docker ps
docker exec -it 6d9c335cddce /bin/bash
6d9c335cddce容器的ID,
-t 让docker分配一个伪终端,并绑定到容器的标准输入上;
-i 让容器的标准输入保持打开;
mysql -h 127.0.0.1 -u root -p
Enter password:
mysql> grant all privileges on *.* to 'root'@'%';
给用于授予权限
mysql> flush privileges; 刷新权限
mysql 8.0 默认使用 caching_sha2_password 身份验证机制 —— 从原来的 mysql_native_password 更改为 caching_sha2_password。
从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password 。
客户端不支持新的加密方式。
方法之一,修改用户的密码和加密方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
如果还是不能链接,关闭宿主机的防火墙试试。
systemctl start firewalld # 开启防火墙
systemctl stop firewalld # 关闭防火墙
systemctl status firewalld #检查防火墙状态
设置完后,关闭容器,在通过镜像开启,设置会丢失,除非找到之前的容器启动。
所以直接容器保存为新的镜像。
docker commit -a "snow" -m "om-db-server" a0e7987b5999 om_db_server:1.0
-
-a :提交的镜像作者;
-
-c :使用Dockerfile指令来创建镜像;
-
-m :提交时的说明文字;
-
-p :在commit时,将容器暂停。
查看镜像,