常用docker命令速查表
一、镜像管理
# 列出本地所有镜像
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'
二、容器生命周期
# 运行一个容器
# 基本运行
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>
三、容器交互与监控
# 查看容器的日志
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>
四、数据卷和网络
# 列出所有数据卷
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
# 构建并启动所有服务
# 在前台运行
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'
六、系统维护
系统级清理
# 清理所有未被使用的资源(镜像、容器、网络、数据卷)
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
可以退出持续监控模式。
七、安全相关
# 扫描镜像漏洞(需安装docker scan)
docker scan <image_name># 查看容器用户
docker exec <container> whoami# 以非root用户运行容器
docker run -u 1000 <image_name># 检查容器权限
docker inspect --format '{{.HostConfig.Privileged}}' <container>
八、使用技巧补充
批量操作
# 停止所有运行中的容器
docker stop $(docker ps -q)# 删除所有退出的容器
docker rm $(docker ps -aq --filter status=exited)
格式输出
# 格式化输出容器信息
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
日志筛选
# 筛选特定时间段的日志
docker logs --since 2023-01-01 --until 2023-01-02 <container>