一.搜索镜像
1.官网查询
①登录官网,搜索栏输入检索的镜像,回车进行查看。


②选择镜像,官方镜像带有official,点击查看详情。

③查看版本,点击Tags标签查看检索,默认最新版本。

2.命令查询
#docker search [OPTIONS] TERM
| NAME | DESCRIPTION | STARS | OFFICIAL | AUTOMATED |
|---|---|---|---|---|
| 仓库 | 描述 | 点赞次数 | 是否官方发布 | 是否自动创建 |
备注:已按点赞数从高到低排序
二、拉取镜像
说明:点击官网右侧复制命令即可使用
#docker pull [OPTIONS] NAME[:TAG|@DIGEST]
备注: ①默认为最新版本,即mysql:latest。 ②可指定版本标签,即mysql:标签号(依据官网查询到的版本)。三、查看镜像
#docker images [OPTIONS] [REPOSITORY[:TAG]]
| REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
|---|---|---|---|---|
| 仓库 | 标签 | 镜像ID | 创建时间 | 大小 |
参数:-f 检索指定镜像 -q 仅显示镜像ID
四、启动容器
#docker run [OPTIONS] IMAGE [COMMAND] [ARG...]①主机中创建挂载目录
mkdir -p /server/mysql/data /server/mysql/conf
②创建临时容器,并进入容器内(用于复制相关配置文件到主机)
docker run -it -p 3306:3306 -v /server/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Aa_123456 --rm --name myMysql mysql:latest /bin/bash

③查看my.cnf配置文件
cat /etc/mysql/my.cnf

④复制my.cnf文件到主机
若是完整的my.cnf配置文件,则通过数据卷将my.cnf复制到主机。
cp /etc/mysql/my.cnf /var/lib/mysql
若包含其他目录下配置文件,则通过数据卷将includedir指定目录也复制到主机。
cp -R /etc/mysql/conf.d/ /var/lib/mysql/conf.d

备注:版本间配置文件不一致,按此规则进行复制即可。
⑤退出容器,同时自动删除容器。
exit 
⑥查看配置文件,可以选择性修改目录(本文将其存放在/server/mysql/conf下,默认在数据卷/server/mysql/data下)。

⑦启动容器
#交互模式:
备注:可使用ctrl+p+q快捷键退出。
#后台启动: 
备注:
①通过设置环境变量"MYSQL_ROOT_PASSWORD",指定root用户的密码。
②容器日志默认存储到/var/lib/docker/containers//-json.log文件中。
五、查看容器
#docker ps [OPTIONS]
| CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS |
|---|---|---|---|---|
| 容器 ID | 使用的镜像 | 启动命令 | 创建时间 | 状态 |
参数:
-a 查看所有的容器(包含未运行的)
-f 检索相应的容器
-l 最近创建的容器
-n 最近创建的n个容器
q 仅显示容器编号
备注:可使用docker inspect查看详细信息,docker port 查看容器端口映射关系。
六、查看日志(可选)
#docker logs [OPTIONS] CONTAINER 
参数:-f : 跟踪日志输出 --tail n :最后n条记录
七、进入容器
#docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
备注:同样可以使用容器ID进行入容器
八、访问验证
①内部访问 mysql -u root -p

②远程访问
说明:mysql8.0的默认认证方式为sha2,可以使用如下命令进行修改。
'root'@
使用Navicat for MySQL访问如下:

备注:
①需进入容器后执行如上命令
②可以使用如下命令创建远程连接用户并设置权限:
create user 'root'@'%' identified with mysql_native_password by'Aa_123456';
grant all on . to 'root'@'%';。
九、退出容器
exit备注:同样可使用ctrl+d 、ctrl+p+q等方式退出。
十、停止容器
#docker stop [OPTIONS] CONTAINER [CONTAINER...]
备注:两者的区别在于,stop预留时间做“退出前工作”,相对优雅,而kill则是强行终止容器运行,类似于kill -9。
十一、删除容器
#docker rm [OPTIONS] CONTAINER [CONTAINER...]
参数 :-f 强制删除运行当中的容器 -v 删除与容器关联的数据卷
备注:
①可使用docker rm container1 container2 批量删除多个已停止容器
②可使用docker rm $(docker ps -a -q)批量删除全部已停止容器
③可使用docker rmi 删除镜像
