Docker 常用命令大全

5 阅读2分钟

一、基础信息 & 镜像操作

docker -v # 查看docker版本 docker info # 查看docker详细信息 docker help # 帮助文档

  1. 镜像拉取、查看、删除 docker pull [镜像名:版本] # 拉取镜像,不加tag默认latest

示例:docker pull nginx:1.25

docker images # 列出本地所有镜像 docker images | grep nginx # 过滤镜像

docker rmi [镜像ID/镜像名] # 删除镜像 docker rmi -f [镜像] # 强制删除镜像(被容器占用也删) docker rmi $(docker images -q) # 清空所有本地镜像

docker search mysql # 搜索仓库镜像 docker tag nginx my-nginx:v1 # 给镜像打标签 docker save -o nginx.tar nginx:1.25 # 导出镜像压缩包 docker load -i nginx.tar # 导入本地镜像包

二、容器生命周期(创建、启动、停止、删除)

  1. 创建并运行容器 run(最常用)

通用模板

docker run [参数] 镜像名

常用参数说明

-d # 后台守护进程运行 --name 容器名 # 指定容器名称 -p 主机端口:容器端口 # 端口映射 -v 主机目录:容器目录 # 数据卷挂载 --restart=always # 开机/重启docker自动启动容器 -it # 交互式终端,进入容器 -e KEY=VALUE # 设置环境变量 --network=xxx # 指定网络

示例1:后台运行nginx,映射80端口

docker run -d --name mynginx -p 8080:80 --restart=always nginx

示例2:交互式进入centos

docker run -it --name test-centos centos /bin/bash

  1. 启停容器

docker start [容器名/ID] # 启动已存在容器 docker stop [容器名/ID] # 优雅停止容器 docker restart [容器名/ID] # 重启容器 docker kill [容器名/ID] # 强制杀死容器

  1. 查看容器 docker ps # 查看正在运行容器 docker ps -a # 查看所有容器(包含已停止) docker ps -q # 只输出容器ID docker logs [容器名] # 查看容器日志 docker logs -f [容器名] # 实时滚动日志 docker logs --tail 100 nginx # 查看最后100行日志

  2. 删除容器

docker rm [容器ID/名称] docker rm -f [容器] # 强制删除运行中容器 docker rm $(docker ps -aq) # 清空所有容器

三、进入容器、文件拷贝

  1. 进入运行中的容器 docker exec -it [容器名] /bin/bash

示例:docker exec -it mynginx /bin/sh

  1. 主机 ↔ 容器 文件复制

容器文件复制到主机

docker cp mynginx:/etc/nginx/nginx.conf ./nginx.conf

本地文件上传到容器

docker cp ./index.html mynginx:/usr/share/nginx/html/

四、数据卷 Volume

docker volume ls # 查看所有数据卷 docker volume create nginx-data # 创建命名卷 docker volume inspect nginx-data # 查看卷挂载路径 docker volume rm nginx-data # 删除数据卷 docker volume prune # 清理无用数据卷

五、网络操作 docker network ls # 查看网络 docker network create my-net # 创建自定义桥接网络 docker network connect my-net 容器名 # 容器加入网络 docker network disconnect my-net 容器名 # 断开网络 docker network rm my-net # 删除网络

六、镜像构建(Dockerfile)

末尾 . 代表Dockerfile所在当前目录

docker build -t my-web:v1 .

指定Dockerfile文件名构建

docker build -f Dockerfile.prod -t my-web:prod .

七、系统清理命令(释放磁盘)

清理停止的容器、无用镜像、无用网络、悬空卷

docker system prune

彻底清理,包含未使用的数据卷

docker system prune -a --volumes

八、容器资源查看

docker stats # 实时查看所有容器CPU、内存、IO占用 docker inspect 容器名 # 查看容器完整元数据(IP、挂载、端口等)

只提取容器IP

docker inspect -f '{{.NetworkSettings.IPAddress}}' mynginx

九、Docker Compose 配套命令(常用)

docker compose up -d # 后台启动服务 docker compose down # 停止并删除容器(保留镜像、卷) docker compose down -v # 停止并删除容器+数据卷 docker compose logs -f # 实时查看日志 docker compose ps # 查看compose容器 docker compose restart # 重启服务 docker compose build # 重新构建镜像

八、实用查询小命令 只输出容器 IP docker inspect -f '{{.NetworkSettings.IPAddress}}' 容器名

筛选指定镜像(如 mysql) docker images | grep mysql

筛选运行中的指定容器 docker ps | grep nginx

实时监控资源占用 docker stats