掌握这15个docker中最常用的命令足矣。这些命令足以搞定docker超90%场景。【建议收藏】

一、常用命令
1. docker run - 创建并启动一个新容器
2. docker start/stop/restart - 启动/停止/重启容器
3. docker exec - 在运行中的容器内执行命令
4. docker rm - 删除容器
5. docker pull - 下载镜像
6. docker images - 列出本地镜像
7. docker rmi - 删除镜像
8. docker build - 构建自定义镜像
9. docker load - 加载tar文件为镜像
10. docker save - 保存镜像为tar文件
11. docker ps - 列出运行中的容器(加-a看所有)
12. docker logs - 查看容器日志
13. docker inspect - 查看容器/镜像的详细信息
14. docker port - 列出端口映射或容器的特定映射
15. docker stats - 实时显示容器占用资源
下面对这些命令分类详细讲解。
二、容器生命周期管理
1. docker run - 创建并启动一个新容器
用法:docker run [选项] 镜像名 [命令]
核心选项:
-d:后台运行容器(守护进程模式)-it:交互模式运行容器(通常与/bin/bash连用)--name:为容器指定一个名称-p:端口映射(格式:宿主机端口:容器端口)-v:挂载数据卷(格式:宿主机目录:容器目录)--rm:容器退出时自动删除(常用于临时测试)
示例:
docker run -d --name web -p 80:80 nginx:alpine # 后台启动一个名为 web 的 nginx 容器
docker run -it --rm ubuntu:22.04 /bin/bash # 交互式启动一个临时 Ubuntu 容器
2. docker start/stop/restart - 启动/停止/重启容器
用法:
docker start 容器名
docker stop 容器名
docker restart 容器名
示例:
docker stop web # 停止 web 容器
docker start web # 启动已停止的 web 容器
docker restart web # 重启 web 容器
要点说明:docker stop会先发送友好终止信号,等待一段时间后强制停止,确保数据安全。
3. docker exec - 在运行中的容器内执行命令
用法:docker exec [选项] 容器名 命令
核心选项:-it(交互模式)
示例:
docker exec -it web /bin/sh # 进入正在运行的 web 容器的命令行
docker exec web ps aux # 在不进入交互模式的情况下查看容器内的进程
要点说明:此命令针对已运行的容器,而docker run是创建新容器。
4. docker rm - 删除容器
用法:docker rm 容器名
示例:
docker rm web # 删除已停止的 web 容器
docker rm $(docker ps -aq) # 删除所有已停止的容器
要点说明:不能直接删除正在运行的容器,除非加-f参数强制删除。
三、镜像管理
1. docker pull - 下载镜像
用法:docker pull 镜像名:标签
示例:
docker pull nginx:alpine # 下载轻量版 nginx
docker pull ubuntu:22.04 # 下载特定版本的 Ubuntu
要点说明:不指定标签时默认为latest,但生产环境强烈建议使用具体版本。
2. docker images - 列出本地镜像
用法:docker images
示例:
docker images # 列出所有镜像
docker images nginx # 只列出 nginx 相关镜像
要点说明:使用docker images -q可以只显示镜像 ID,常用于脚本。
3. docker rmi - 删除镜像
用法:docker rmi 镜像名:标签或 docker rmi 镜像ID
示例:
docker rmi nginx:alpine # 通过镜像名删除
docker rmi a1b2c3d4e5f6 # 通过镜像 ID 删除
要点说明:如果镜像正在被容器使用(即使容器已停止),则无法删除,需先删除依赖的容器。通过镜像id删除时,id只能指向一个标签时。
4. docker build - 构建自定义镜像
用法:docker build [选项] 构建上下文路径
核心选项:-t(为镜像指定标签)
示例:
docker build -t my-app:v1.0 . # 使用当前目录的 Dockerfile 构建镜像并命名为 my-app:v1
要点说明:命令最后的点(.)表示构建上下文为当前目录,非常重要不能遗漏。
5. docker load - 加载tar文件为镜像
用法:docker load tar文件
核心选项:
- -i, --input: 指定输入文件的路径。
- -q, --quiet: 安静模式,减少输出信息。
示例:
docker load -i my-app-v1.0.tar #将tar文件导入为镜像
6. docker save - 保存镜像为tar文件
用法: docker save -o tar文件路径 镜像名:标签
示例:
docker save -o my-app-v1.0.tar my-app:v1 #将my-app:v1的镜像导出为tar文件
四、信息查看与日志
1. docker ps - 列出运行中的容器(加-a看所有)
用法:docker ps [选项]
示例:
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器(包括已停止的)
要点说明:docker ps -a是最常用的组合,避免遗漏已停止的容器。
2. docker logs - 查看容器日志
用法:docker logs [选项] 容器名
核心选项:
-
-f:实时跟踪日志输出--tail N:仅显示最后 N 行日志
示例:
docker logs web # 查看 web 容器的历史日志
docker logs -f --tail 50 web # 实时跟踪最后 50 行日志
要点说明:排查容器问题时的首选命令,相当于查看应用的控制台输出。
3. docker inspect - 查看容器/镜像的详细信息
用法:docker inspect 容器名/镜像名
示例:
docker inspect web # 查看 web 容器的详细配置(IP、网络、挂载等)
要点说明:输出为 JSON 格式,信息非常详细,可查看容器的所有底层配置。
4. docker port - 列出端口映射或容器的特定映射
用法:docker port 容器名称或id
示例:
docker port web #显示端口映射
5. docker stats - 实时显示容器占用资源
用法:docker stats [容器名称或id]
示例:
docker stats web # 查看 web 容器的资源占用
docker stats # 查看全部运行容器的资源占用
要点说明:如果没有指定容器名称或者id,则显示当前在运行的所有容器的资源占用情况。
该文首发于本人知乎号:野生码农
515

被折叠的 条评论
为什么被折叠?



