Interview AiBox logo

Interview AiBox 实时 AI 助手,让你自信应答每一场面试

download免费下载
2local_fire_department6 次面试更新于 2025-09-03account_tree思维导图

请列举并解释你常用的Docker命令及其作用。

lightbulb

题型摘要

Docker是容器化平台的核心工具,其命令可分为六大类:镜像管理(search/pull/images/rmi/build/save/tag)、容器管理(run/ps/stop/start/restart/rm/exec/logs/inspect/stats/top/update)、网络管理(ls/create/inspect/rm/connect/disconnect)、数据卷管理(ls/create/inspect/rm)、系统信息(info/version/df/prune)和Docker Compose(up/down/ps/logs/exec/build)。掌握这些命令能有效管理容器生命周期,实现应用的快速部署、扩展和维护。最常用的命令包括docker run(运行容器)、docker ps(查看容器)、docker logs(查看日志)和docker exec(执行命令),它们构成了Docker日常操作的基础。

常用Docker命令及其作用详解

Docker是一个开源的容器化平台,它允许开发者将应用程序及其依赖打包到一个可移植的容器中。掌握Docker命令是使用Docker的基础,下面我将按照功能分类列举并解释常用的Docker命令。

Docker命令分类概览

Docker命令可以分为以下几个主要类别:

  1. 镜像管理命令:用于搜索、拉取、构建、删除和管理Docker镜像
  2. 容器管理命令:用于创建、运行、停止、删除和管理Docker容器
  3. 网络管理命令:用于创建、管理和查看Docker网络
  4. 数据卷管理命令:用于创建、管理和查看Docker数据卷
  5. 系统信息命令:用于查看Docker系统信息和资源使用情况
  6. Docker Compose命令:用于管理多容器应用

下面我将详细解释每个类别下的常用命令。

镜像管理命令

docker search

作用:在Docker Hub中搜索镜像。

语法

docker search [OPTIONS] TERM

示例

# 搜索nginx镜像
docker search nginx

# 搜索官方提供的nginx镜像
docker search --filter=is-official=true nginx

# 搜索超过10颗星的nginx镜像
docker search --filter=stars=10 nginx

docker pull

作用:从镜像仓库中拉取指定的镜像。

语法

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

示例

# 拉取最新的nginx镜像
docker pull nginx

# 拉取指定版本的nginx镜像
docker pull nginx:1.21

# 拉取指定摘要的镜像
docker pull nginx@sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268

docker images

作用:列出本地主机上的镜像。

语法

docker images [OPTIONS] [REPOSITORY[:TAG]]

示例

# 列出所有本地镜像
docker images

# 列出所有本地镜像(包括中间层镜像)
docker images -a

# 列出nginx镜像
docker images nginx

# 以特定格式列出镜像
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"

docker rmi

作用:删除一个或多个本地镜像。

语法

docker rmi [OPTIONS] IMAGE [IMAGE...]

示例

# 删除指定镜像
docker rmi nginx:latest

# 强制删除镜像(即使有容器使用该镜像)
docker rmi -f nginx:latest

# 删除多个镜像
docker rmi nginx:latest redis:latest alpine:latest

# 删除所有未被使用的镜像
docker image prune

docker build

作用:使用Dockerfile创建镜像。

语法

docker build [OPTIONS] PATH | URL | -

示例

# 使用当前目录下的Dockerfile构建镜像
docker build -t myapp:latest .

# 使用指定目录下的Dockerfile构建镜像
docker build -t myapp:latest /path/to/dir

# 使用指定的Dockerfile构建镜像
docker build -f /path/to/Dockerfile -t myapp:latest .

# 构建时不使用缓存
docker build --no-cache -t myapp:latest .

# 构建时传递构建参数
docker build --build-arg APP_VERSION=1.0 -t myapp:latest .

docker history

作用:显示镜像的历史记录。

语法

docker history [OPTIONS] IMAGE

示例

# 显示nginx镜像的历史记录
docker history nginx

# 显示nginx镜像的详细历史记录(包括大小)
docker history --no-trunc nginx

docker save/load

作用

  • docker save:将指定镜像保存成 tar 归档文件。
  • docker load:从 tar 归档文件或标准输入中加载镜像。

语法

docker save [OPTIONS] IMAGE [IMAGE...]
docker load [OPTIONS]

示例

# 将nginx镜像保存为tar文件
docker save -o nginx.tar nginx:latest

# 将多个镜像保存为tar文件
docker save -o images.tar nginx:latest redis:latest

# 从tar文件加载镜像
docker load -i nginx.tar

# 从标准输入加载镜像
docker load < nginx.tar

docker tag

作用:标记本地镜像,将其归入某一仓库。

语法

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

示例

# 将nginx:latest标记为my-nginx:latest
docker tag nginx:latest my-nginx:latest

# 将nginx:1.21标记为my-nginx:v1.21
docker tag nginx:1.21 my-nginx:v1.21

容器管理命令

docker run

作用:创建一个新的容器并运行一个命令。

语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

示例

# 运行一个nginx容器,并在后台运行
docker run -d --name my-nginx nginx

# 运行一个nginx容器,将容器的80端口映射到主机的8080端口
docker run -d -p 8080:80 --name my-nginx nginx

# 运行一个nginx容器,将主机的目录挂载到容器中
docker run -d -v /host/path:/container/path --name my-nginx nginx

# 运行一个nginx容器,并设置环境变量
docker run -d -e ENV_VAR=value --name my-nginx nginx

# 运行一个容器,并在容器内执行命令
docker run -it --name my-nginx nginx /bin/bash

# 运行一个容器,并设置自动重启
docker run -d --restart always --name my-nginx nginx

# 运行一个容器,并限制内存使用
docker run -d --memory="512m" --name my-nginx nginx

docker ps

作用:列出容器。

语法

docker ps [OPTIONS]

示例

# 列出正在运行的容器
docker ps

# 列出所有容器(包括未运行的)
docker ps -a

# 列出最近创建的n个容器
docker ps -n 5

# 只显示容器ID
docker ps -q

# 显示容器大小
docker ps -s

# 以特定格式列出容器
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"

docker stop/start/restart

作用

  • docker stop:停止一个或多个运行中的容器。
  • docker start:启动一个或多个已停止的容器。
  • docker restart:重启一个或多个容器。

语法

docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker restart [OPTIONS] CONTAINER [CONTAINER...]

示例

# 停止一个容器
docker stop my-nginx

# 停止多个容器
docker stop my-nginx my-redis

# 启动一个已停止的容器
docker start my-nginx

# 启动多个容器
docker start my-nginx my-redis

# 重启一个容器
docker restart my-nginx

# 重启多个容器
docker restart my-nginx my-redis

# 强制停止容器(发送SIGKILL而不是SIGTERM)
docker kill my-nginx

docker rm

作用:删除一个或多个容器。

语法

docker rm [OPTIONS] CONTAINER [CONTAINER...]

示例

# 删除一个已停止的容器
docker rm my-nginx

# 强制删除一个正在运行的容器
docker rm -f my-nginx

# 删除多个容器
docker rm my-nginx my-redis

# 删除所有已停止的容器
docker container prune

# 删除容器并删除其关联的数据卷
docker rm -v my-nginx

docker exec

作用:在运行的容器中执行命令。

语法

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

示例

# 在容器中执行命令
docker exec my-nginx ls /

# 在容器中以交互模式执行命令
docker exec -it my-nginx /bin/bash

# 以特定用户在容器中执行命令
docker exec -u root my-nginx whoami

# 设置工作目录并在容器中执行命令
docker exec -w /tmp my-nginx pwd

docker logs

作用:获取容器的日志。

语法

docker logs [OPTIONS] CONTAINER

示例

# 查看容器的所有日志
docker logs my-nginx

# 实时查看容器的日志
docker logs -f my-nginx

# 查看容器最后n行的日志
docker logs --tail 50 my-nginx

# 查看容器最近30分钟的日志
docker logs --since 30m my-nginx

# 查看容器特定时间段的日志
docker logs --since "2023-01-01T00:00:00" --until "2023-01-02T00:00:00" my-nginx

# 显示容器日志的时间戳
docker logs -t my-nginx

docker inspect

作用:获取容器或镜像的详细信息。

语法

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

示例

# 查看容器的详细信息
docker inspect my-nginx

# 查看镜像的详细信息
docker inspect nginx:latest

# 查看容器的IP地址
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-nginx

# 查看容器的挂载点
docker inspect --format='{{json .Mounts}}' my-nginx

# 查看容器的配置
docker inspect --format='{{json .Config}}' my-nginx

docker stats

作用:显示容器的资源使用统计信息。

语法

docker stats [OPTIONS] [CONTAINER...]

示例

# 显示所有运行中容器的资源使用情况
docker stats

# 显示指定容器的资源使用情况
docker stats my-nginx my-redis

# 显示所有容器的资源使用情况(包括未运行的)
docker stats -a

# 禁用流式输出,只显示一次结果
docker stats --no-stream

# 以特定格式显示容器的资源使用情况
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

docker top

作用:显示容器中运行的进程。

语法

docker top CONTAINER [ps OPTIONS]

示例

# 显示容器中运行的进程
docker top my-nginx

# 显示容器中运行的进程的详细信息
docker top my-nginx aux

docker update

作用:更新一个或多个容器的配置。

语法

docker update [OPTIONS] CONTAINER [CONTAINER...]

示例

# 更新容器的内存限制
docker update --memory="1g" my-nginx

# 更新容器的CPU限制
docker update --cpus="1.5" my-nginx

# 更新容器的重启策略
docker update --restart=always my-nginx

网络管理命令

docker network ls

作用:列出所有网络。

语法

docker network ls [OPTIONS]

示例

# 列出所有网络
docker network ls

# 只显示网络ID
docker network ls -q

# 以特定格式列出网络
docker network ls --format "table {{.ID}}\t{{.Name}}\t{{.Driver}}"

docker network create

作用:创建一个新的网络。

语法

docker network create [OPTIONS] NETWORK

示例

# 创建一个桥接网络
docker network create my-network

# 创建一个指定子网的桥接网络
docker network create --subnet=192.168.0.0/16 my-network

# 创建一个覆盖网络(用于Swarm集群)
docker network create --driver overlay my-overlay-network

docker network inspect

作用:显示一个或多个网络的详细信息。

语法

docker network inspect [OPTIONS] NETWORK [NETWORK...]

示例

# 查看网络的详细信息
docker network inspect my-network

# 查看多个网络的详细信息
docker network inspect my-network my-other-network

# 以特定格式查看网络的详细信息
docker network inspect --format='{{json .IPAM.Config}}' my-network

docker network rm

作用:删除一个或多个网络。

语法

docker network rm NETWORK [NETWORK...]

示例

# 删除一个网络
docker network rm my-network

# 删除多个网络
docker network rm my-network my-other-network

# 删除所有未使用的网络
docker network prune

docker network connect/disconnect

作用

  • docker network connect:将容器连接到网络。
  • docker network disconnect:将容器从网络断开。

语法

docker network connect [OPTIONS] NETWORK CONTAINER
docker network disconnect [OPTIONS] NETWORK CONTAINER

示例

# 将容器连接到网络
docker network connect my-network my-nginx

# 将容器连接到网络,并指定别名
docker network connect --alias nginx my-network my-nginx

# 将容器从网络断开
docker network disconnect my-network my-nginx

数据卷管理命令

docker volume ls

作用:列出所有数据卷。

语法

docker volume ls [OPTIONS]

示例

# 列出所有数据卷
docker volume ls

# 只显示数据卷名称
docker volume ls -q

# 以特定格式列出数据卷
docker volume ls --format "table {{.Name}}\t{{.Driver}}\t{{.Mountpoint}}"

docker volume create

作用:创建一个新的数据卷。

语法

docker volume create [OPTIONS] [VOLUME]

示例

# 创建一个数据卷
docker volume create my-volume

# 创建一个带标签的数据卷
docker volume create --label type=cache my-volume

docker volume inspect

作用:显示一个或多个数据卷的详细信息。

语法

docker volume inspect [OPTIONS] VOLUME [VOLUME...]

示例

# 查看数据卷的详细信息
docker volume inspect my-volume

# 查看多个数据卷的详细信息
docker volume inspect my-volume my-other-volume

# 以特定格式查看数据卷的详细信息
docker volume inspect --format='{{.Mountpoint}}' my-volume

docker volume rm

作用:删除一个或多个数据卷。

语法

docker volume rm VOLUME [VOLUME...]

示例

# 删除一个数据卷
docker volume rm my-volume

# 删除多个数据卷
docker volume rm my-volume my-other-volume

# 删除所有未使用的数据卷
docker volume prune

系统信息命令

docker info

作用:显示Docker系统信息。

语法

docker info [OPTIONS]

示例

# 显示Docker系统信息
docker info

# 以特定格式显示Docker系统信息
docker info --format '{{json .}}'

docker version

作用:显示Docker版本信息。

语法

docker version [OPTIONS]

示例

# 显示Docker版本信息
docker version

# 只显示客户端版本
docker version --format '{{.Client.Version}}'

# 只显示服务器版本
docker version --format '{{.Server.Version}}'

docker system df

作用:显示Docker磁盘使用情况。

语法

docker system df [OPTIONS]

示例

# 显示Docker磁盘使用情况
docker system df

# 显示更详细的信息
docker system df -v

docker system prune

作用:清理未使用的Docker对象。

语法

docker system prune [OPTIONS]

示例

# 清理未使用的Docker对象(镜像、容器、网络和构建缓存)
docker system prune

# 清理所有未使用的Docker对象(包括未标记的镜像)
docker system prune -a

# 清理未使用的Docker对象,但不显示确认提示
docker system prune -f

# 清理未使用的Docker对象,包括数据卷
docker system prune --volumes

Docker Compose命令

docker-compose up

作用:创建并启动容器。

语法

docker-compose up [OPTIONS] [SERVICE...]

示例

# 启动所有服务
docker-compose up

# 在后台启动所有服务
docker-compose up -d

# 启动特定服务
docker-compose up nginx

# 强制重新创建容器
docker-compose up --force-recreate

# 不使用缓存构建镜像
docker-compose up --build --no-cache

docker-compose down

作用:停止并删除容器、网络、数据卷和镜像。

语法

docker-compose down [OPTIONS]

示例

# 停止并删除容器、网络
docker-compose down

# 停止并删除容器、网络和数据卷
docker-compose down -v

# 停止并删除容器、网络、数据卷和镜像
docker-compose down --rmi all

docker-compose ps

作用:列出容器。

语法

docker-compose ps [OPTIONS] [SERVICE...]

示例

# 列出所有容器
docker-compose ps

# 列出特定服务的容器
docker-compose ps nginx

# 只显示容器ID
docker-compose ps -q

docker-compose logs

作用:查看服务日志。

语法

docker-compose logs [OPTIONS] [SERVICE...]

示例

# 查看所有服务的日志
docker-compose logs

# 实时查看所有服务的日志
docker-compose logs -f

# 查看特定服务的日志
docker-compose logs nginx

# 查看特定服务最近n行的日志
docker-compose logs --tail 50 nginx

docker-compose exec

作用:在运行的容器中执行命令。

语法

docker-compose exec [OPTIONS] SERVICE COMMAND [ARGS...]

示例

# 在nginx服务中执行命令
docker-compose exec nginx ls /

# 在nginx服务中以交互模式执行命令
docker-compose exec nginx /bin/bash

# 以特定用户在nginx服务中执行命令
docker-compose exec -u root nginx whoami

docker-compose build

作用:构建或重建服务。

语法

docker-compose build [OPTIONS] [SERVICE...]

示例

# 构建所有服务
docker-compose build

# 构建特定服务
docker-compose build nginx

# 不使用缓存构建镜像
docker-compose build --no-cache

# 构建时传递构建参数
docker-compose build --build-arg APP_VERSION=1.0

Docker命令使用流程图

下面是一个使用Docker命令的典型流程图,展示了从镜像管理到容器运行的基本流程:

--- title: Docker命令使用流程 --- graph TD A["开始"] --> B["镜像管理"] B --> B1["docker search 搜索镜像"] B --> B2["docker pull 拉取镜像"] B --> B3["docker build 构建镜像"] B --> B4["docker images 查看镜像"] B --> C["容器管理"] C --> C1["docker run 运行容器"] C --> C2["docker ps 查看容器"] C --> C3["docker stop/start/restart 控制容器"] C --> C4["docker exec 执行命令"] C --> C5["docker logs 查看日志"] C --> C6["docker inspect 查看详情"] C --> C7["docker rm 删除容器"] C --> D["网络管理"] D --> D1["docker network ls 查看网络"] D --> D2["docker network create 创建网络"] D --> D3["docker network connect 连接网络"] D --> D4["docker network rm 删除网络"] C --> E["数据卷管理"] E --> E1["docker volume ls 查看数据卷"] E --> E2["docker volume create 创建数据卷"] E --> E3["docker volume rm 删除数据卷"] C --> F["系统信息"] F --> F1["docker info 查看系统信息"] F --> F2["docker version 查看版本"] F --> F3["docker system df 查看磁盘使用"] F --> F4["docker system prune 清理系统"] G["结束"]

总结

Docker提供了丰富的命令集来管理镜像、容器、网络和数据卷。掌握这些命令是使用Docker的基础,也是运维人员必备的技能。通过本文的介绍,你应该能够理解并熟练使用这些常用的Docker命令,从而更高效地管理和部署容器化应用。

参考资料

account_tree

思维导图

Interview AiBox logo

Interview AiBox — 面试搭档

不只是准备,更是实时陪练

Interview AiBox 在面试过程中提供实时屏幕提示、AI 模拟面试和智能复盘,让你每一次回答都更有信心。

AI 助读

一键发送到常用 AI

Docker是容器化平台的核心工具,其命令可分为六大类:镜像管理(search/pull/images/rmi/build/save/tag)、容器管理(run/ps/stop/start/restart/rm/exec/logs/inspect/stats/top/update)、网络管理(ls/create/inspect/rm/connect/disconnect)、数据卷管理(ls/create/inspect/rm)、系统信息(info/version/df/prune)和Docker Compose(up/down/ps/logs/exec/build)。掌握这些命令能有效管理容器生命周期,实现应用的快速部署、扩展和维护。最常用的命令包括docker run(运行容器)、docker ps(查看容器)、docker logs(查看日志)和docker exec(执行命令),它们构成了Docker日常操作的基础。

智能总结

深度解读

考点定位

思路启发

auto_awesome

相关题目

请做一个自我介绍

自我介绍是面试的开场环节,需简洁有力地展示个人背景、技能经验与岗位匹配度。有效结构包括:开场问候、核心经历、技能展示、成就亮点、岗位认知、职业规划、公司了解和得体收尾。针对运维岗位,应突出Linux管理、网络配置、自动化部署等技术能力,并结合具体案例和量化成果。表达要真诚自然,时间控制在2-3分钟,展现自信和对公司的了解。

arrow_forward

请详细介绍一下你参与的项目

项目经验介绍应包括项目背景、个人角色、技术栈、工作内容、挑战与解决方案、成果收获以及与岗位的关联。通过具体案例展示技术能力和问题解决能力,突出与运维岗位相关的经验和技能,如系统部署、监控、故障排查、自动化运维等。同时体现团队协作和持续学习的态度。

arrow_forward

请介绍一下你的项目经验

在面试中介绍项目经验时,应选择与运维岗位最相关的项目,按"项目背景→个人职责→技术栈→难点与解决方案→项目成果"的结构进行介绍。重点突出自己在项目中的技术贡献、解决问题的能力以及与运维岗位相关的经验。通过具体案例展示自己的技术实力、学习能力和团队协作精神,并将项目经验与应聘岗位联系起来,展示自己的匹配度和价值。

arrow_forward

请进行自我介绍并详细介绍你参与过的项目

自我介绍和项目经验是面试的重要环节。优秀的自我介绍应简洁明了地展示个人背景、专业技能和职业规划;项目经验介绍则应选择与岗位相关的项目,详细说明项目背景、个人职责、使用技术、解决方案和项目成果。回答时应突出与岗位相关的技能和经验,展现专业能力和解决问题的能力,同时保持自信和真诚的态度。

arrow_forward

请详细介绍你简历中提到的项目,包括实现细节和遇到的问题

面试中介绍项目经验时,应选择与运维岗位最相关的项目,按照"项目背景-个人职责-技术实现-遇到问题-解决方案-项目成果"的结构进行介绍。重点突出个人贡献、技术细节和解决问题的能力,用数据量化项目成果。示例包括校园服务器集群自动化运维平台和基于Kubernetes的微服务部署与运维两个项目,展示了监控模块设计、CI/CD流水线构建、故障排查等运维核心能力。

arrow_forward