首页
/ Complete Intro to Containers V2:深入理解Docker CLI命令

Complete Intro to Containers V2:深入理解Docker CLI命令

2025-06-27 03:09:13作者:凌朦慧Richard

Docker CLI概述

Docker命令行界面(CLI)是与Docker引擎交互的主要方式,它提供了丰富的命令集来管理容器生命周期、镜像操作以及系统监控等功能。掌握这些命令对于高效使用Docker至关重要。

核心Docker CLI命令详解

镜像管理命令

pull与push

docker pull命令用于从镜像仓库下载镜像到本地缓存:

docker pull jturpin/hollywood

这个命令会下载镜像但不立即运行它。当后续使用docker run时,Docker会直接使用本地缓存的镜像,无需重复下载。

docker push则用于将本地镜像推送到镜像仓库,如公共仓库或私有仓库:

docker push yourusername/yourimage

镜像历史查询

docker history命令可以查看镜像的构建历史,了解各层的创建过程和大小:

docker history node:20

这个命令特别有助于分析镜像的构建过程,优化镜像大小。

镜像删除

docker rmi(remove image)命令用于删除本地镜像:

docker rmi mongo

当需要释放磁盘空间或清理不再需要的镜像时,这个命令非常有用。

容器操作命令

容器暂停与恢复

docker pausedocker unpause命令可以临时暂停和恢复容器内的所有进程:

docker run -dit --name hw --rm jturpin/hollywood hollywood
docker pause hw    # 暂停容器
docker unpause hw  # 恢复容器

这在需要临时释放系统资源时非常有用。

容器内命令执行

docker exec允许在运行中的容器内执行命令,而不需要启动新容器:

docker exec hw ps aux

ps aux命令可以查看容器内运行的进程列表,是调试容器问题的有力工具。

容器检查

docker inspect提供容器的详细信息,包括配置、网络设置等:

docker inspect node:20

这个命令会输出JSON格式的详细信息,适合深入了解容器配置。

容器进程监控

docker top命令类似于Linux的top命令,可以查看容器内运行的进程:

docker run -dit --name my-mongo --rm mongo
docker top my-mongo

日志与状态管理

日志查看

docker logs命令用于查看容器的标准输出和错误输出:

docker run --name my-mongo --rm -dit mongo
docker logs my-mongo

这对于调试应用和监控容器行为至关重要。

容器重启

docker restart命令可以重启运行中的容器:

docker restart my-container

这通常用于应用配置更新后重新加载。

系统管理命令

系统信息

docker info命令提供Docker系统的详细信息:

docker info

包括存储驱动、容器数量、镜像数量等系统级信息。

容器清理

docker rm删除停止的容器,docker container prune则可以一键清理所有停止的容器:

docker rm my-container
docker container prune

这些命令帮助保持系统整洁,释放资源。

高级操作

容器导入导出

docker exportdocker import命令允许将容器导出为tar归档文件,或从归档文件导入:

docker export my-container > container.tar
docker import container.tar new-image:tag

这在需要迁移或备份容器时非常有用。

镜像搜索

docker search命令可以在公共注册表中搜索镜像:

docker search python
docker search node

这对于查找特定软件或服务的官方镜像很有帮助。

最佳实践与技巧

  1. 组合使用命令:许多Docker命令可以组合使用,如docker ps -a查看所有容器,docker ps -q只显示容器ID等。

  2. 日志实时监控:使用docker logs -f可以实时跟踪日志输出,类似于tail -f的效果。

  3. 批量操作:结合xargs可以批量操作容器,如docker ps -aq | xargs docker rm删除所有停止的容器。

  4. 资源限制:在运行容器时使用--memory--cpus参数可以限制容器资源使用。

  5. 环境变量管理:使用-e参数传递环境变量,或使用--env-file从文件加载环境变量。

通过熟练掌握这些Docker CLI命令,开发者可以高效地管理容器化应用,提升开发和部署效率。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
182
2.11 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
205
282
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
960
570
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
543
70
pytorchpytorch
Ascend Extension for PyTorch
Python
58
87
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
78
72
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
146
192
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.01 K
399