Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中,从而实现“一次构建,到处运行”,掌握 Docker 基础命令是使用 Docker 的第一步,以下将详细介绍常用的 Docker 命令及其使用场景。

镜像相关命令
镜像是容器的基石,是一个只读的模板,用于创建容器,以下是镜像操作的常用命令:
-
搜索镜像
从 Docker Hub 官方仓库搜索镜像,可通过--filter
参数过滤结果,例如按星级、是否官方等。docker search nginx --filter=stars=1000 # 搜索星级超过1000的nginx镜像
-
拉取镜像
从仓库下载镜像到本地,可指定标签(版本),默认为 latest。docker pull ubuntu:20.04 # 拉取ubuntu 20.04版本镜像
-
查看本地镜像
列出本地所有镜像,包含镜像ID、创建时间、大小等信息。(图片来源网络,侵删)docker images # 或 docker image ls
-
删除镜像
删除本地镜像,可通过镜像ID或标签名指定,若镜像被容器使用,需先删除容器或添加-f
强制删除。docker rmi ubuntu:20.04 # 删除指定标签镜像 docker rmi $(docker images -q) # 批量删除所有镜像(谨慎使用)
-
查看镜像详细信息
以 JSON 格式显示镜像的配置、分层等详细信息。docker image inspect nginx:latest
-
构建镜像
通过 Dockerfile 构建自定义镜像,-t
参数用于指定镜像名称和标签, 表示 Dockerfile 所在目录。docker build -t myapp:v1.0 .
容器相关命令
容器是镜像的运行实例,是 Docker 的核心概念,以下是容器操作的常用命令:

-
运行容器
创建并启动容器,常用参数包括:-d
:后台运行容器-p
:端口映射,格式为主机端口:容器端口
--name
:指定容器名称-it
:以交互模式运行,通常与/bin/bash
等命令结合使用docker run -d --name webserver -p 8080:80 nginx # 后台运行nginx容器,端口映射8080->80 docker run -it ubuntu:20.04 /bin/bash # 进入ubuntu容器交互终端
-
查看运行中的容器
列出当前正在运行的容器,-a
可查看所有容器(包括已停止的)。docker ps # 查看运行中的容器 docker ps -a # 查看所有容器
-
停止与启动容器
docker stop container_id_or_name # 停止容器 docker start container_id_or_name # 启动已停止的容器 docker restart container_id_or_name # 重启容器
-
进入容器
在运行的容器中执行命令,exec
是推荐方式(不推荐attach
,可能导致终端混乱)。docker exec -it webserver /bin/bash # 进入webserver容器的bash终端
-
删除容器
删除已停止的容器,-f
可强制删除运行中的容器。docker rm container_id_or_name # 删除指定容器 docker rm $(docker ps -aq) # 批量删除所有容器(谨慎使用)
-
查看容器日志
查看容器的标准输出日志,--follow
可实时跟踪日志。docker logs webserver # 查看webserver容器日志 docker logs -f webserver # 实时跟踪日志
-
查看容器资源占用
实时显示容器的 CPU、内存、网络等资源使用情况。docker stats webserver
-
复制文件
在主机和容器之间复制文件,格式为docker cp <源路径> <目标路径>
。docker cp ./local.txt webserver:/container/ # 复制主机文件到容器内 docker cp webserver:/container/file.txt ./ # 复制容器内文件到主机
其他常用命令
-
查看 Docker 信息
显示 Docker 系统的总体信息,包括版本、存储驱动、运行时等。docker info
-
清理无用资源
删除所有已停止的容器、未被使用的镜像、网络等,-f
可强制清理包括悬空镜像在内的所有资源。docker system prune # 清理未使用的容器、网络、镜像等 docker system prune -a # 清理所有未使用的资源(包括悬空镜像)
-
查看 Docker 版本
显示 Docker 客户端和服务端的版本信息。docker version
镜像与容器操作对比表
操作类别 | 命令示例 | 说明 |
---|---|---|
镜像操作 | docker pull nginx:latest |
拉取镜像 |
docker images |
列出本地镜像 | |
docker build -t myapp . |
构建自定义镜像 | |
容器操作 | docker run -d --name myapp nginx |
启动容器 |
docker ps -a |
查看所有容器状态 | |
docker exec -it myapp bash |
进入容器终端 | |
资源管理 | docker system prune |
清理无用资源 |
docker stats myapp |
查看容器资源占用 |
相关问答FAQs
Q1: 如何查看容器内部进程?
A: 可以通过 docker top <容器名或ID>
命令查看容器内运行的进程列表,类似于 Linux 系统的 top
命令。docker top webserver
将显示 nginx 容器中运行的进程信息,包括 PID、用户、CPU 及内存占用等。
Q2: 容器退出后如何保留其修改的数据?
A: 容器的文件系统是临时的,容器停止后修改的数据会丢失,要持久化数据,可通过以下两种方式:
- 数据卷(Volume):使用
docker run -v /host/path:/container/path
将主机目录挂载到容器内,docker run -v /data/nginx:/usr/share/nginx/html nginx
,这样容器内/usr/share/nginx/html
的修改会同步到主机的/data/nginx
目录。 - 命名数据卷:通过
docker volume create myvol
创建数据卷,然后在运行容器时挂载:docker run -v myvol:/container/path nginx
,数据卷的生命周期独立于容器,即使容器删除,数据卷仍可保留。