在容器化技术飞速发展的今天,Docker 已成为开发者和运维人员不可或缺的工具。它通过轻量级的容器实现了应用的快速部署、测试和迁移,但想要熟练驾驭 Docker,掌握实用的命令技巧至关重要。
Docker 是一种开源的容器化平台,它通过将应用程序及其所有依赖项打包到一个独立的、可移植的单元中,实现了 “一次构建,随处运行” 的目标。这种技术不仅能大幅简化应用的部署流程,还能有效隔离不同应用间的运行环境,避免因依赖冲突导致的故障。无论是开发测试、持续集成 / 持续部署(CI/CD),还是生产环境的高效运维,Docker 都已成为现代软件开发与交付过程中不可或缺的工具。
一.高频基础命令详解
对于 Docker 初学者或日常高频使用场景,掌握以下基础命令能快速上手并完成大部分常规操作。这些命令覆盖了镜像获取、容器创建、状态查看等核心场景,是 Docker 使用的 "必备工具箱"。
1.1镜像相关基础命令
镜像是Docker 容器运行的基础,它包含了运行一个应用程序所需的所有元素,如代码、运行时环境、系统工具、系统库和设置等。镜像采用分层存储的方式构建,每一层都是在前一层的基础上进行修改,这种设计不仅节省了磁盘空间,还能在多个容器间共享相同的镜像层,提升部署效率。当你基于某个镜像创建容器时,实际上是在镜像的顶层添加了一个可读写层,所有对容器的修改都发生在这一层,而底层的镜像层始终保持不变,从而确保了应用环境的一致性和可重复性
1.1.1镜像拉取
命令:docker pull [镜像名称]:[标签]
功能:从远程仓库拉取镜像到本地
示例:
l 拉取最新版本:docker pull ubuntu
l 拉取指定版本:docker pull python:3.9(推荐生产环境使用,避免latest标签的版本不稳定问题)
docker pull python:3.91.1.2查看本地镜像
命令:docker images [镜像名称]
功能:显示本地镜像列表及详细信息(仓库名、标签、ID、大小等)
示例:
l 查看所有镜像:
docker imagesl 过滤查看特定镜像:
docker images nginx1.1.3镜像删除
命令:docker rmi [镜像ID/镜像名:标签]
功能:删除本地指定镜像
说明:若镜像已被容器使用,需先删除关联容器,否则删除失败。
示例:
l 删除指定标签镜像:docker rmi nginx:1.23
docker rmi nginx:1.23l 强制删除(需谨慎):
docker rmi -f 7e4d58f0e5f3(镜像 ID)1.1.4镜像拉取
l 命令:docker pull 镜像名:版本号
示例:docker pull nginx:1.23就能明确拉取 nginx 1.23 版本。
docker pull nginx:1.231.2容器核心操作命令
1.2.1创建并启动容器
命令:docker run [参数] [镜像名]
功能:基于指定镜像创建并启动容器
常用参数:
l -it:创建交互式终端(如进入容器操作)
l -d:后台运行容器
l -p [宿主端口]:[容器端口]:端口映射
l --name [名称]:指定容器名称
l -v [宿主路径]:[容器路径]:挂载数据卷
示例:
l 交互式启动:docker run -it ubuntu /bin/bash
docker run -it ubuntu /bin/bashl 后台启动并配置:docker run -d -p 8080:80 --name mynginx -v /data/nginx:/usr/share/nginx/html nginx:1.23
docker run -d -p 8080:80 --name mynginx -v /data/nginx:/usr/share/nginx/html nginx:1.231.2.2查看容器状态
命令:docker ps [参数]
功能:查看容器运行状态
常用参数:
l 无参数:显示运行中容器
l -a:显示所有容器(含已停止)
l -q:仅输出容器 ID(用于批量操作)
示例:
l 查看所有容器:
docker ps -al 获取所有容器 ID:
docker ps -aq1.2.3容器启停控制
l 启动容器:docker start [容器ID/名称]
示例:
docker start mycontainerl 停止容器:docker stop [容器ID/名称]
示例:
docker stop mycontainerl 重启容器:docker restart [容器ID/名称]
示例:
docker restart mycontainer1.2.4进入运行中容器
命令:docker exec -it [容器ID/名称] [shell]
功能:在运行中的容器内创建交互式终端
示例:
l 进入 bash 终端:
docker exec -it mynginx /bin/bashl 轻量容器(无 bash):
docker exec -it alpine /bin/sh1.2.5删除容器
命令:docker rm [容器ID/名称]
功能:删除指定容器
示例:
l 删除停止的容器:
docker rm mycontainerl 强制删除运行中容器:
docker rm -f myrunningcontainer1.3系统信息查看命令
l 命令:
docker info功能:显示 Docker 系统详情(版本、容器 / 镜像数量、存储驱动、硬件配置等)
l 命令:
docker version功能:查看客户端与服务端版本信息(版本号、API 版本等)
二.镜像管理实用技巧
镜像作为容器的基石,其高效管理直接影响 Docker 的使用体验。
2.1镜像清理
l 删除悬空镜像:
docker image prunel 删除所有未使用镜像(谨慎):
docker image prune -al 全面清理(含网络、卷):
docker system prune -a!绝对确认没有重要的未使用镜像。
2.2镜像构建
l 使用.dockerignore文件排除冗余文件(如.git、node_modules),减小镜像体积。
l 采用多阶段构建(Dockerfile 中使用多个FROM指令),仅保留运行必需文件。
l docker build [选项] <构建上下文路径>(基于 Dockerfile 构建镜像)
常用参数
-t <镜像名:标签>:指定镜像名称和标签,如-t myapp:v1.0
-f <Dockerfile路径>:指定非默认路径的 Dockerfile,如-f ./build/Dockerfile
--no-cache:不使用缓存,强制重新构建所有层
--build-arg:传递构建时变量,如--build-arg VERSION=1.0
示例:
docker build -t webapp:latest .l docker commit [选项] <容器ID或名称> <新镜像名:标签>(基于容器状态创建镜像)
常用参数:
-m "<提交信息>":添加镜像描述信息
-a "<作者信息>":指定镜像作者
--change <Dockerfile指令>:提交时应用 Dockerfile 指令(如--change "EXPOSE 8080")
示例:# 将运行中的容器mycontainer创建为新镜像
docker commit -m "添加自定义配置" -a "dev-team" mycontainer custom-nginx:v1.12.3查看镜像详细信息
l 查看镜像标签:
docker inspect --format '{{.RepoTags}}' [镜像ID]l 查看镜像大小:
docker inspect --format '{{.Size}}' [镜像ID]三.容器操作进阶技巧
3.1日志查看
l 基础查看:
docker logs [容器名]l 实时跟踪 + 时间戳 + 指定行数:
docker logs -ft --tail 200 [容器名]3.2容器暂停与恢复
l 暂停进程:
docker pause [容器名]l 恢复运行:
docker unpause [容器名]3.3配置修改方案
l 若需修改容器配置(如端口映射),可通过以下步骤实现:
将容器保存为新镜像:docker commit [容器ID] [新镜像名]
基于新镜像创建容器并配置新参数:docker run [新参数] [新镜像名]
四.效率工具与最佳实践
4.1命令别名
设置能简化重复操作,输入时无需重复敲写冗长命令。
l 在.bashrc或.zshrc中添加别名,简化输入:
alias dk='docker
alias dkp= 'docker ps
alias dkrm= docker rm
alias dki= docker images l 生效命令:
source ~/.bashrc4.2使用 Docker Compose 管理多容器应用
l 通过docker-compose.yml定义服务、网络、卷
l 启动:
docker-compose up -dl 停止并清理:
docker-compose down4.3定期备份重要数据卷和镜像
l 镜像备份:
docker save -o [备份文件.tar] [镜像名]l 镜像恢复:
docker load -i [备份文件.tar]l 数据卷备份:
tar -cvf [备份.tar] /var/lib/docker/volumes/[卷名]/_dataDocker 的世界远不止这些基础操作,随着使用深入,你会发现更多实用技巧。记住,高效使用 Docker 的关键在于理解其核心概念,结合实际场景灵活运用命令,并养成良好的管理习惯。希望本文分享的小 tips 能帮助你在容器化之路上走得更顺畅,让 Docker 真正成为提升工作效率的利器。
评论区