常用docker命令速查表

一、镜像管理

bash 复制代码
# 列出本地所有镜像
docker images

# 构建镜像:从当前目录的 Dockerfile 构建,并打上标签
docker build -t <image_name>:<tag> .

# 导出镜像到文件(用于迁移或备份)
docker save -o <output_file>.tar <image_name>:<tag>

# 从文件导入镜像
docker load -i <input_file>.tar

# 从仓库拉取镜像
docker pull <image_name>:<tag>

# 将镜像推送到仓库:需要先 docker login
docker push <username>/<image_name>:<tag>

# 删除一个或多个本地镜像
docker rmi <image_id_or_name>

# 清理无用的镜像
# 清理所有未被使用的镜像
docker image prune

# 强制清理所有未被使用的镜像(包括被标记的)
docker image prune -a


# 查看镜像的详细信息
docker inspect <image_id_or_name>

# 查看镜像的构建历史(图层)
docker history <image_id_or_name>

# 给镜像添加新标签
docker tag <source_image>:<tag> <new_image>:<new_tag>

# 查看镜像的磁盘占用详情(新增)
docker system df --format "{{.Type}}: {{.Size}}" | grep 'Image'

二、容器生命周期

bash 复制代码
# 运行一个容器
# 基本运行
docker run <image_name>

# 后台运行、端口映射、并命名
docker run -d -p <host_port>:<container_port> --name <container_name> <image_name>

# 运行容器时添加环境变量
docker run -e "ENV_VAR=value" <image_name>

# 运行容器时挂载数据卷
docker run -v /host/path:/container/path <image_name>

# 运行容器时设置内存限制
docker run -m 512m <image_name>


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

# 列出所有容器(包括已停止的)
docker ps -a

# 查看最新创建的容器
docker ps -n <数量>

# 只显示容器ID
docker ps -q


# 停止一个容器
docker stop <container_id_or_name>

# 启动一个已停止的容器
docker start <container_id_or_name>

# 重启一个容器
docker restart <container_id_or_name>

# 删除一个已停止的容器
docker rm <container_id_or_name>

# 强制删除一个正在运行的容器
docker rm -f <container_id_or_name>

# 清理无用的容器:清理所有已停止的容器
docker container prune


# 暂停/恢复容器(不停止进程)
docker pause <container_id_or_name>
docker unpause <container_id_or_name>

# 重命名容器(新增)
docker rename <old_name> <new_name>

三、容器交互与监控

bash 复制代码
# 查看容器的日志
docker logs <container_id_or_name>

# 实时跟踪日志
docker logs -f <container_id_or_name>

# 查看容器日志并显示时间戳
docker logs -t <container_id_or_name>

# 限制日志输出行数
docker logs --tail=100 <container_id_or_name>

# 同时监控多个容器的资源使用
docker stats <container1> <container2>

# 查看容器端口映射情况
docker port <container_id_or_name>

# 导出容器文件系统(不包含卷)
docker export -o <file>.tar <container_id_or_name>

# 在运行的容器中执行命令
# 进入交互式 shell
docker exec -it <container_id_or_name> /bin/sh

# 执行单个命令
docker exec <container_id_or_name> ls /

# 查看容器的资源使用情况
# 查看所有运行中容器的实时资源使用(按 Ctrl+C 退出持续模式)
docker stats

# 查看指定容器的资源使用
docker stats <container_id_or_name>

# 只显示一次结果(不持续更新)
docker stats --no-stream

# 查看容器的详细信息
docker inspect <container_id_or_name>

# 在容器和主机之间复制文件
# 从容器复制文件到主机
docker cp <container_id_or_name>:<container_path> <host_path>

# 从主机复制文件到容器
docker cp <host_path> <container_id_or_name>:<container_path>

# 查看容器中运行的进程
docker top <container_id_or_name>

四、数据卷和网络

bash 复制代码
# 列出所有数据卷
docker volume ls

# 创建一个数据卷
docker volume create <volume_name>

# 删除一个数据卷
docker volume rm <volume_name>

# 清理无用的数据卷
docker volume prune


# 列出所有网络
docker network ls

# 创建一个网络
docker network create <network_name>

# 删除一个网络
docker network rm <network_name>

# 将容器连接到网络
docker network connect <network_name> <container_id_or_name>

# 指定容器在网络中的别名
docker network connect --alias <alias_name> <network_name> <container_id_or_name>

# 将容器从网络中断开
docker network disconnect <network_name> <container_id_or_name>

# 强制断开连接
docker network disconnect -f <network_name> <container_id_or_name>

# 查看数据卷详情
docker volume inspect <volume_name>

# 创建带驱动选项的数据卷
docker volume create --driver local --opt type=tmpfs <volume_name>

# 查看网络详情
docker network inspect <network_name>

# 创建带自定义子网的网络
docker network create --subnet=172.20.0.0/16 <network_name>

# 检查容器网络连接(需容器内安装ping)
docker exec <container> ping <target_ip>

五、Docker Compose

bash 复制代码
# 构建并启动所有服务
# 在前台运行
docker compose up

# 在后台运行
docker compose up -d

# 如果 Dockerfile 有变动,强制重新构建
docker compose up --build


# 停止并删除所有服务
docker compose down

# 同时删除数据卷
docker compose down --volumes


# 列出所有服务状态
docker compose ps

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

# 跟踪特定服务的日志
docker compose logs -f <service_name>

# 在特定服务中执行命令
docker compose exec <service_name> <command>

# 构建或重新构建服务
docker compose build


# 启动特定服务(不启动依赖项)
docker compose up <service_name>

# 查看服务依赖树
docker compose config --services

# 强制重建单个服务
docker compose up --force-recreate <service_name>

# 执行一次性命令(不持续运行)
docker compose run <service_name> <command>

# 查看服务环境变量
docker compose config | grep -A3 'environment'

六、系统维护

系统级清理

bash 复制代码
# 清理所有未被使用的资源(镜像、容器、网络、数据卷)
docker system prune

# 强制清理所有未被使用的资源(包括被标记的镜像)
docker system prune -a

# 查看Docker系统使用情况
docker system df

# 查看详细的磁盘使用信息
docker system df -v

持续监控说明

以下命令支持持续监控模式,可以实时刷新显示:

  • docker stats - 默认持续监控容器资源使用情况(按 Ctrl+C 退出)

  • docker logs -f - 持续跟踪容器日志输出

  • docker compose logs -f - 持续跟踪服务日志输出

注意docker stats 默认就是持续输出的,使用 --no-stream 可以只显示一次结果。

提示 :按 Ctrl+C 可以退出持续监控模式。

七、安全相关

bash 复制代码
# 扫描镜像漏洞(需安装docker scan)
docker scan <image_name>

# 查看容器用户
docker exec <container> whoami

# 以非root用户运行容器
docker run -u 1000 <image_name>

# 检查容器权限
docker inspect --format '{{.HostConfig.Privileged}}' <container>

八、使用技巧补充

批量操作

bash 复制代码
# 停止所有运行中的容器
docker stop $(docker ps -q)

# 删除所有退出的容器
docker rm $(docker ps -aq --filter status=exited)

格式输出

bash 复制代码
# 格式化输出容器信息
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"

日志筛选

bash 复制代码
# 筛选特定时间段的日志
docker logs --since 2023-01-01 --until 2023-01-02 <container>
相关推荐
cliproxydaili3 小时前
Cliproxy与Adspower指纹浏览器:跨境业务安全与效率的双重引擎
运维·服务器·安全
喜欢你,还有大家4 小时前
Prometheus监控部署——pushgateway&&自动推送
运维·prometheus
冲上云霄的Jayden4 小时前
Ubuntu 22.04 中查看指定进程 ID(PID)状态的五种方法
运维·ubuntu·ps·top·pid·htop·proc
搬砖的小码农_Sky4 小时前
如何在Linux(Ubuntu)操作系统上查看文件的MD5,SHA256等校验码
linux·运维·ubuntu
Linux运维技术栈4 小时前
Jenkins从节点配置全攻略:从搭建到任务调度,参数详解与实战指南
运维·jenkins
java_logo12 小时前
Docker 部署 WordPress 全流程
运维·docker·容器·word·php·1024程序员节
小小的木头人13 小时前
Ubuntu 自动挂载移动硬盘
运维
Mr. Sun_13 小时前
Dell Networking SmartFabric OS10 如何设置虚拟链路中继 (VLT)
运维·网络·dell vlt
北城笑笑14 小时前
Server 15 ,VMware ESXi 实战指南:Ubuntu 20.04.6 版本虚拟机静态 IP 配置、分辨率固定及远程访问实践
linux·运维·ubuntu·1024程序员节