Docker中常用的镜像命令和容器命令

目录

前提

镜像命令

[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

相关推荐
雪可问春风17 小时前
docker环境部署
运维·docker·容器
lwx91485218 小时前
Linux-Shell算术运算
linux·运维·服务器
翻斗包菜18 小时前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
somi718 小时前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
双份浓缩馥芮白18 小时前
【Docker】Linux 迁移 docker 目录(软链接)
linux·docker
海的透彻18 小时前
nginx启动进程对文件的权限掌控
运维·chrome·nginx
路溪非溪19 小时前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
航Hang*19 小时前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
北方的流星19 小时前
华三网络设备的路由重定向配置
运维·网络·华三
河南博为智能科技有限公司19 小时前
蓄电池在线监测系统-守护数据中心安全防线
运维·边缘计算