目录
[1 查看当前下载的镜像](#1 查看当前下载的镜像)
[2 删除 镜像](#2 删除 镜像)
[3 拉取docker 仓库镜像](#3 拉取docker 仓库镜像)
[1 启动容器](#1 启动容器)
[2 查看当前 容器](#2 查看当前 容器)
[3 删除容器](#3 删除容器)
[4 停止容器](#4 停止容器)
[5 查看容器日志](#5 查看容器日志)
[6 进入mysql容器测试(mysql举例)](#6 进入mysql容器测试(mysql举例))
前提
docker 已经集成好了wsl,接下来我将在wsl 环境中,操作

如果输入wsl,报错,重新点击 下载的docker 找到 resource 配置,看到集成wsl,重新打开【即使之前是打开的,为防止意外,建议重新操作一遍】

正文
镜像命令
1 查看当前下载的镜像
docker images

输入命令后,可以观察到 一些专有名字比如:IMAGE,ID,DISK USAGE等
- IMAGE:下载镜像的名字
- ID: 下载镜像的唯一标识,后面启动容器,可以根据镜像名字或id启动
- DISK USAGE :该镜像在本地磁盘上实际占用的存储空间。
- 例如 mysql:latest 显示 1.29GB,就是它在你本地占用的磁盘空间。
- CONTENT SIZE:镜像所有层的总大小(包括与其他镜像共享的层),代表镜像本身的完整内容大小。它反映了镜像的原始体积,而不是实际占用的磁盘空间(因为共享层不会重复计算)。
- EXTRA:U 表示 未被使用的镜像
2 删除 镜像
删除镜像
前提:如果你要删除某一个镜像,那么该镜像没有被启动过/启动了,但是该容器被删除
docker rmi 【镜像名】
示例: docker rmi quay.io/centos/centos:stream9

3 拉取docker 仓库镜像
docker pull [镜像名/下载镜像地址]
从下面这个图片可知,centos镜像被删除了,我将从docker远程仓库 重新 拉取
前提: 配置好相关网络,保证网络畅通

示例:docker pull quay.io/centos/centos:stream9
如图所示,使用 docker pull命令 执行成功!

容器命令
1 启动容器
1.1 启动容器
docker run
这里拿启动mysql 容器举例
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=你的密码 mysql:latest
示例:docker run -d -p 3307:3307 --name mysql01 -e MYSQL_ROOT_PASSWORD=123 mysql:latest
注意: 我之所以使用3307作为端口号是因为上一个mysql容器已经将3306端口号占有

1.2 启动容器
docker start [可选参数] [容器ID/容器名称]
核心作用 :启动已存在的停止状态容器,容器的配置(端口、环境变量、数据卷等)都会保留创建时的设置。
区别于 docker run:docker run 是新建并启动容器,docker start 是启动已存在的容器。
如图所示:其中一个mysql 容器已经被我通过docker stop 命令 停止运行了。现在我想让容器id 为
a4f8608ef1ce 重新启动

输入:docker start a4f8608ef1ce

1.3 启动容器并打印日志
docker start -a 【容器名字】
2 查看当前 容器
- 查看当前 正在运行的容器
注意:docker ps 默认只显示正在运行的容器,但引用镜像的容器也可能是已停止或已退出的状态,这类容器用默认的 docker ps 是看不到的。
docker ps
-
所有创建的容器,不管它是否在运行。
docker ps -a
-
查看 基于某一个镜像创建的容器
docker ps -a -f ancestor=【镜像名】
示例:docker ps -a -f ancestor=quay.io/centos/centos:stream9

- 查看容器id
注意:这个命令的主要用途是生成一个纯容器 ID 的列表,方便作为参数传递给其他命令(比如 docker rm、docker stop),实现批量操作。
docker ps -a -q

3 删除容器
-
根据容器id 删除指定容器
docker rm 容器id【CONTAINER ID】
示例:docker rm 19aaa566e6e2

- 批量删除容器
批量删除某一个镜像下的容器
docker rm -f $(docker ps -a -q -f ancestor=镜像名)
示例:docker rm -f $(docker ps -a -q -f ancestor=quay.io/centos/centos:stream9)

-
删除所有容器
docker rm -f $(docker ps -a -q)
4 停止容器
docker stop 容器id
示例:docker stop a4f8608ef1ce

5 查看容器日志
注意:查看容器日志,观察容器具体是什么问题
docker logs 容器id[CONTAINER ID]
示例:我使用docker start 容器id,启动容器,并且成功返回容器的id,但是我使用docker ps 发现么有正在运行的容器,于是使用 docker logs 容器id 查看该容器是什么情况

使用 docker logs 命令查看情况

解决办法:1 删除现有容器,重新创一个新的带有密码的mysql容器 2 对现有mysql容器添加密码
我选择 第一种:
docker run -d -p 3306:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=你的密码 \
mysql:latest
如图所示,这是新创建的mysql
6 进入mysql容器测试(mysql举例)
-it :表示与某一个容器交互参数,可以进入指定容器的终端
- -i(--interactive):交互模式,保持容器的标准输入(STDIN)打开,让你能向容器输入命令;
- -t(--tty):伪终端模式,为容器分配一个虚拟的终端(TTY),让你能像操作本地终端一样操作容器。
输入命令后,回车 输入密码,切换 mysql 客户端
docker exec -it mysql01 mysql -uroot -p

注意:如果想从 mysql 客户端退出容器但不停止容器的快捷键是 Ctrl + P + Q
