Docker常用命令 | 服务+镜像+容器

Docker常用命令 | 服务+镜像+容器

🌈
个人主页: Hygge_Code
🔥
热门专栏:从0开始学习Java | Linux学习| 计算机网络
💫
个人格言: “既然选择了远方,便不顾风雨兼程”

在这里插入图片描述

文章目录

  • Docker常用命令
    • 一、基础帮助命令 🍂
    • 二、镜像管理命令 🥝
      • 1. 查看本地镜像
      • 2. 搜索镜像
      • 3. 拉取(下载)镜像
      • 4. 查看镜像/容器占用空间
      • 5. 删除镜像
      • 6. 什么是虚悬镜像?🤔
    • 三、容器管理命令 🥝
      • 1. 容器启动命令
        • 常用参数说明
        • 代码示例
      • 2. 查看容器状态
      • 3. 容器的启动+停止
      • 4. 进入运行中的容器
      • 5. 容器日志与进程查看
      • 6. 容器删除操作
      • 7. 容器数据备份与迁移
        • (1)从容器拷贝文件到主机
        • (2)导出容器为tar包
        • (3)导入tar包为镜像
    • 四、仓库交互命令 🍂
    • 五、常用命令速查 🧾

Docker常用命令

一、基础帮助命令 🍂

# 查看Docker整体帮助文档
docker --help
# 查看指定命令的详细用法(以cp命令为例)
docker cp --help

说明docker --help会列出所有核心命令分类(如镜像命令、容器命令),具体命令 --help能查看该命令的参数、语法格式和示例

二、镜像管理命令 🥝

1. 查看本地镜像

# 列出本地所有镜像(默认隐藏中间层镜像)
docker images
# 列出本地所有镜像(包含历史映像层)
docker images -a
# 只显示镜像ID(常用于批量操作)
docker images -q
# 列出指定仓库的镜像(如只看redis镜像)
docker images redis
# 显示镜像的摘要信息
docker images --digests

字段说明

  • REPOSITORY:镜像仓库源(如ubuntu、redis)
  • TAG:镜像标签(版本号,默认latest为最新版)
  • IMAGE ID:镜像唯一标识
  • CREATED:镜像创建时间
  • SIZE:镜像大小

2. 搜索镜像

从公共仓库搜索需要的镜像:

# 搜索指定名称的镜像(如搜索redis)
docker search redis
# 搜索镜像并限制结果数量(如只显示前5个)
docker search --limit 5 redis

搜索结果字段说明

参数 说明
NAME 镜像名称
DESCRIPTION 镜像功能描述
STARS 点赞数量
OFFICIAL 是否为官方发布镜像
AUTOMATED 是否为自动构建镜像

3. 拉取(下载)镜像

从仓库下载镜像到本地,语法:docker pull 镜像名[:TAG]

# 下载最新版本的镜像(不指定TAG默认latest)
docker pull mysql
# 下载指定版本的镜像(如redis 6.0.8)
docker pull redis:6.0.8

4. 查看镜像/容器占用空间

# 查看镜像、容器、数据卷的空间占用情况
docker system df

输出说明

  • TYPE:资源类型(Images/Containers/Local Volumes/Build Cache)
  • TOTAL:总数量
  • ACTIVE:活跃数量
  • SIZE:占用总空间
  • RECLAIMABLE:可回收空间(如未使用的镜像、停止的容器)

5. 删除镜像

# 根据镜像名称删除(如删除hello-world镜像)
docker rmi hello-world
# 根据镜像ID删除
docker rmi feb5d9fea6a5
# 强制删除镜像
docker rmi -f 镜像ID/镜像名
# 删除多个镜像(空格分隔)
docker rmi -f ubuntu:latest redis:6.0.8
# 删除所有本地镜像
docker rmi -f $(docker images -qa)

注意事项

  • 不能直接删除正在运行的容器所依赖的镜像,需先停止容器或强制删除
  • $(docker images -qa)会获取所有镜像ID,结合-f参数实现批量删除

6. 什么是虚悬镜像?🤔

仓库名、标签均为<none>的镜像称为虚悬镜像,无任何用途,可以删掉:

# 查看所有虚悬镜像
docker images -f dangling=true
# 删除所有虚悬镜像
docker image prune

三、容器管理命令 🥝

1. 容器启动命令

核心命令:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用参数说明
参数 作用
– -name=“容器名” 指定容器名称(如- -name=u1),避免默认随机名称
-d 后台运行容器(守护式容器),返回容器ID
-it 交互式(前台)运行容器-i:交互模式,-t:分配伪终端)
-P 随机端口映射(大写P),Docker自动分配主机端口映射到容器端口
-p 指定端口映射(小写p),格式:主机端口:容器端口(如-p 8080:80)
–privileged=true 扩大容器权限(解决CentOS7中目录挂载权限问题)
-v 数据卷挂载(如-v 宿主机目录:容器目录)
代码示例
# 交互式启动Ubuntu容器,进入bash终端
docker run -it ubuntu /bin/bash
# 指定容器名启动(如命名为u1)
docker run -it --name=u1 ubuntu /bin/bash
# 后台启动Redis容器,指定端口映射(主机6379映射容器6379)
docker run -d -p 6379:6379 --name=myredis redis:6.0.8
# 启动守护式容器(后台运行,不占用终端)
docker run -d redis:6.0.8

2. 查看容器状态

# 查看正在运行的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
# 查看最近创建的容器(默认最近1个)
docker ps -l
# 查看最近创建的n个容器(如最近2个)
docker ps -n 2
# 只显示容器ID
docker ps -q
# 查看容器详细信息(如查看u1容器详情)
docker inspect u1

3. 容器的启动+停止

# 启动已停止的容器
docker start 容器ID/容器名
# 重启容器
docker restart 容器ID/容器名
# 停止容器
docker stop 容器ID/容器名
# 强制停止容器
docker kill 容器ID/容器名

4. 进入运行中的容器

当容器以-d后台运行时,需进入容器进行操作,常用两种方式:

# 方式1:exec命令(退出容器后容器仍运行)
docker exec -it 容器ID/容器名 /bin/bash
# 示例:进入名为 myredis 的容器
docker exec -it myredis /bin/bash
# 方式2:attach命令(退出容器后容器会停止)
docker attach 容器ID/容器名

区别

  • exec会创建新的终端进程,不影响容器运
  • attach直接连接容器的主进程,退出后容器停止。

5. 容器日志与进程查看

# 查看容器运行日志
docker logs 容器ID/容器名
# 实时查看日志
docker logs -f 容器ID/容器名
# 查看容器内运行的进程
docker top 容器ID/容器名

6. 容器删除操作

# 删除已停止的容器
docker rm 容器ID/容器名
# 强制删除容器(无论是否运行)
docker rm -f 容器ID/容器名
# 批量删除所有停止的容器
docker rm -f $(docker ps -a -q)
# 批量删除所有容器
docker rm -f $(docker ps -qa)

注意删除容器不会影响镜像,镜像可重新创建新容器。

7. 容器数据备份与迁移

(1)从容器拷贝文件到主机
# 语法:docker cp 容器ID:容器内路径 主机目标路径
# 示例:将容器内/tmp/a.txt拷贝到主机/tmp目录
docker cp 608d2057e7e5:/tmp/a.txt /tmp/a.txt
(2)导出容器为tar包
# 语法:docker export 容器ID > 文件名.tar
docker export 608d2057e7e5 > ubuntu.tar.gz
(3)导入tar包为镜像
# 语法:cat 文件名.tar | docker import - 镜像用户/镜像名:版本号
cat ubuntu.tar.gz | docker import - wen/ubuntu:1.0

四、仓库交互命令 🍂

仓库用于存储镜像,常用操作包括登录、推送镜像、拉取镜像。

# 登录Docker仓库(以阿里云为例)
docker login --username=用户名 registry.cn-hangzhou.aliyuncs.com
# 退出仓库登录
docker logout
# 给镜像打标签(推送镜像到仓库前必须操作)
# 语法:docker tag 本地镜像ID 仓库地址/命名空间/镜像名:版本号
docker tag a31aabe9e714 registry.cn-hangzhou.aliyuncs.com/krisswen/linux1:1.0
# 推送镜像到仓库
docker push registry.cn-hangzhou.aliyuncs.com/krisswen/linux1:1.0
# 从仓库拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/krisswen/linux1:1.0

注意推送镜像到私有仓库时,需先登录且镜像标签符合仓库规范(仓库地址/命名空间/镜像名:版本号)。

五、常用命令速查 🧾

功能分类 核心命令
镜像查看 docker images docker images -a docker images -q
镜像搜索 docker search 镜像名 docker search --limit 数量 镜像名
镜像下载 docker pull 镜像名[:TAG]
镜像删除 docker rmi 镜像ID/名称 docker rmi -f 镜像ID/名称
容器创建 docker run -it --name=容器名 镜像名 /bin/bash
容器启动 docker start 容器ID/名称
容器停止 docker stop 容器ID/名称 docker kill 容器ID/名称
容器查看 docker ps docker ps -a docker inspect 容器ID/名称
进入容器 docker exec -it 容器ID/名称 /bin/bash
容器删除 docker rm 容器ID/名称 docker rm -f 容器ID/名称
仓库操作 docker login docker push 镜像标签 docker pull 镜像标签

如果我的内容对你有帮助,请 点赞 评论 收藏 。创作不易,大家的支持就是我坚持下去的动力!

在这里插入图片描述

© 版权声明

相关文章