Docker 常用命令

Docker 常用命令

一、镜像管理

镜像是创建容器的基础。

命令 说明 示例
docker images 列出本地所有镜像 docker images
docker search <镜像名> 从 Docker Hub 搜索镜像 docker search nginx
docker pull <镜像名>[:标签] 下载镜像(不指定标签则默认为 latest) docker pull ubuntu:20.04
docker rmi <镜像ID或名> 删除一个本地镜像 docker rmi 1234567890ab
docker rmi $(docker images -q) 强制删除所有本地镜像 docker rmi -f $(docker images -q)
docker build -t <标签名> <路径> 根据 Dockerfile 构建镜像 docker build -t my-app .
docker tag <源镜像> <新镜像> 给镜像打一个新的标签 docker tag my-app:latest my-registry.com/my-app:v1
docker push <镜像名> 将镜像推送到仓库 docker push my-registry.com/my-app:v1
docker save -o <文件名>.tar <镜像名> 将镜像保存为 tar 文件(用于备份迁移) docker save -o my-app.tar my-app:latest
docker load -i <文件名>.tar 从 tar 文件加载镜像 docker load -i my-app.tar
docker history <镜像名> 查看镜像的构建历史 docker history my-app

二、容器生命周期管理

容器是镜像的运行实例。

命令 说明 示例
docker run [选项] <镜像> 创建并启动一个新容器 见下方详细说明
docker start <容器名/ID> 启动一个已存在的容器 docker start my-container
docker stop <容器名/ID> 停止一个运行中的容器(优雅停止) docker stop my-container
docker restart <容器名/ID> 重启容器 docker restart my-container
docker kill <容器名/ID> 强制停止一个容器(发送 SIGKILL) docker kill my-container
docker pause <容器名/ID> 暂停容器内的所有进程 docker pause my-container
docker unpause <容器名/ID> 恢复容器内的所有进程 docker unpause my-container
docker rm <容器名/ID> 删除一个已停止的容器 docker rm my-container
docker rm -f <容器名/ID> 强制删除一个容器(包括运行中的) docker rm -f my-container
docker rm $(docker ps -aq) 删除所有已停止的容器 docker rm $(docker ps -aq)

docker run 常用选项详解:

这是一个最核心也最复杂的命令。

bash 复制代码
# 基础运行
docker run -d --name my-nginx nginx

# 常用组合选项
docker run -dit --name my-container \
  -p 8080:80 \           # 端口映射 (主机端口:容器端口)
  -v /host/path:/container/path \ # 数据卷挂载
  -e "ENV_VAR=value" \   # 设置环境变量
  --network my-network \ # 指定网络
  --restart=always \     # 自动重启策略
  ubuntu:20.04 /bin/bash
  • -d (--detach): 后台运行容器。
  • -it: 通常一起使用,-i 保持标准输入打开,-t 分配一个伪终端,用于进入交互式容器。
  • --name: 为容器指定一个名称。
  • -p: 端口映射。
  • -v: 数据卷挂载。
  • -e: 设置环境变量。
  • --restart: 自动重启策略(no, on-failure, always, unless-stopped)。

三、容器信息查看与操作

命令 说明 示例
docker ps 列出正在运行的容器 docker ps
docker ps -a 列出所有容器(包括已停止的) docker ps -a
docker logs <容器名/ID> 查看容器的日志 docker logs my-container
docker logs -f <容器名/ID> 实时跟踪(Follow)容器日志 docker logs -f my-container
docker exec [选项] <容器> <命令> 运行中的容器内执行命令 见下方详细说明
docker inspect <容器/镜像> 获取容器/镜像的详细信息(元数据) docker inspect my-container
docker top <容器名/ID> 查看容器内运行的进程 docker top my-container
docker stats 实时显示容器的资源使用统计(CPU、内存等) docker stats
docker diff <容器名/ID> 检查容器文件系统相对于镜像的更改 docker diff my-container
docker port <容器名/ID> 查看容器的端口映射情况 docker port my-container

docker exec 常用选项:

bash 复制代码
# 在运行中的容器内执行一个命令(如 ls)
docker exec my-container ls /app

# 以交互模式进入容器(最常用)
docker exec -it my-container /bin/bash
# 或使用 sh
docker exec -it my-container sh
  • -i: 保持 STDIN 打开。
  • -t: 分配伪终端。
  • -u: 指定用户名。

四、数据卷管理

数据卷用于持久化容器数据。

命令 说明 示例
docker volume ls 列出所有数据卷 docker volume ls
docker volume create <卷名> 创建一个数据卷 docker volume create my-vol
docker volume inspect <卷名> 查看数据卷的详细信息 docker volume inspect my-vol
docker volume rm <卷名> 删除一个数据卷 docker volume rm my-vol
docker volume prune 删除所有未被使用的本地数据卷 docker volume prune

五、网络管理

命令 说明 示例
docker network ls 列出所有网络 docker network ls
docker network create <网络名> 创建一个新的网络 docker network create my-bridge
docker network inspect <网络名> 查看网络的详细信息 docker network inspect bridge
docker network connect <网络> <容器> 将容器连接到指定网络 docker network connect my-net my-container
docker network disconnect <网络> <容器> 断开容器与指定网络的连接 docker network disconnect my-net my-container
docker network rm <网络名> 删除一个网络 docker network rm my-net
docker network prune 删除所有未被使用的网络 docker network prune

六、系统与清理命令

命令 说明 示例
docker info 显示 Docker 系统范围的信息 docker info
docker version 显示 Docker 版本信息 docker version
docker system df 查看 Docker 磁盘使用情况 docker system df
docker system prune 一键清理:删除所有停止的容器、未被使用的网络、构建缓存和所有未被容器引用的镜像。 docker system prune
docker system prune -a 更彻底的一键清理 :在上述基础上,额外删除所有未被使用的镜像。慎用! docker system prune -a

实用命令组合示例

1.进入一个正在运行的容器:

bash 复制代码
docker exec -it <container_name_or_id> /bin/bash

2.从宿主机复制文件到容器:

bash 复制代码
docker cp /path/on/host/file.txt <container_name>:/path/in/container/

3.从容器复制文件到宿主机

bash 复制代码
docker cp <container_name>:/path/in/container/file.txt /path/on/host/

4.查看容器 IP 地址:

bash 复制代码
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name>
相关推荐
西柚小萌新5 小时前
【Bug:docker】--Docker国内镜像源加载失败
docker·容器·bug
爱宇阳6 小时前
GitLab Docker Compose 迁移教程
docker·容器·gitlab
冲上云霄的Jayden9 小时前
ubuntu 22一步步 安装docker和配置使用国内源
linux·ubuntu·docker·国内源
javpy10 小时前
docker部署nacos报错 ‘env NACOS_AUTH_TOKEN must be set with Base64 String.‘
linux·docker·centos
梁正雄15 小时前
扩展-docker-ovs编译
运维·docker·容器
凯子坚持 c18 小时前
通往Docker之路:从单机到容器编排的架构演进全景
docker·容器·架构
Fuly102418 小时前
使用docker本地部署dify
运维·docker·容器
遇见火星1 天前
Ubuntu Docker 容器化部署教程
linux·ubuntu·docker
Panda__Panda1 天前
docker项目打包演示项目(数字排序服务)
运维·javascript·python·docker·容器·c#