docker操作镜像-以mysql为例
当安装一个新的镜像时可以登录https://hub.docker.com/直接搜索想要安装的镜像,[查看文档](https://hub.docker.com/ "查看文档")
1)拉取镜像
docker pull mysql 或者 docker pull mysql:版本号

然后直接跳到第**4)**步即可
2)错误的启动
docker run --name mysql01 -d mysql
这个只是默认的启动方式,每一个镜像都有自己的配置,记得查看文档
3)正确的启动(没有映射)
按照文档上进行启动
docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

docker ps

启动成功了,但是访问不了,因为没有与主机地址做映射
停止并删除容器:
docker stop <ID>
docker rm <ID>

4 )做了端口映射的正确启动
docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
run -d // 后台运行
-p 3307:3306 // 宿主机端口:容器内部端口 云服务器需要开放端口
-e MYSQL_ROOT_PASSWORD=123456 // 设置默认root用户密码为 123456
--name mysql 01 // 容器名称
mysql // 镜像名
若主机3306端口已被占用,且无法释放,可用3307端口
docker run -p 3307:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

5)几个高级操作
docker run --name mysql03 -v /conf/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面
改mysql的配置文件就只需要把mysql配置文件放在自定义的文件夹下(/conf/mysql)
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
指定mysql的一些配置参数
6)mysql远程连接需要密码加密
首先 docker exec -it <容器名称> bash
,进入容器
docker exec -it mysql01 bash

登录mysql
mysql -uroot -p123456
成功返回如下:
7) 添加远程用户
Docker配置Mysql并设置远程连接_docker mysql远程访问-CSDN博客
添加远程连接用户
alter user 'root'@'%' identified with mysql_native_password by '123456';
修改用户认证方式 :将用户
root@%
的身份验证插件设置为mysql_native_password
(旧版密码验证方式)。设置密码 :同时更新用户密码为
123456
。

如果安装的是Mysql5.6左右的版本,使用如下语句
添加远程连接用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
刷新权限
flush privileges;

可以通过Navicat测试连接
8)设置mysql自启动
设置mysql容器自启动
docker update --restart=always <ID>