Docker常用命令(2026最新)

Docker 的核心操作围绕镜像容器展开,其常用命令可系统性地分为信息查看、镜像管理、容器生命周期管理、容器交互与运维、网络与存储、以及多容器编排等类别。掌握这些命令是高效使用 Docker 的基础 。

一、 系统信息与帮助

这类命令用于查看 Docker 环境状态和获取命令帮助。

命令 功能描述 示例
docker version 显示 Docker 客户端和服务端的版本信息 。 docker version
docker info 显示 Docker 系统的详细信息,包括容器、镜像数量、存储驱动等 。 docker info
docker --help 查看 Docker 命令的总体帮助信息 。 docker --help
docker <command> --help 查看具体子命令的详细用法和参数 。 docker run --help

二、 镜像管理

镜像是创建容器的模板,管理镜像是 Docker 使用的第一步。

命令 功能描述 示例
docker images 列出本地所有镜像 。 docker images
docker search <image_name> 从 Docker Hub 仓库搜索镜像 。 docker search nginx
docker pull <image_name>[:tag] 从仓库拉取(下载)指定镜像到本地 。 docker pull nginx:alpine
docker rmi <image_id> 删除指定的本地镜像 。 docker rmi d1a364dc548d
docker tag <image> <new_name>[:tag] 为镜像创建一个新的标签(别名)。 docker tag nginx mynginx:v1
docker build -t <image_name> . 根据当前目录的 Dockerfile 构建一个新的镜像 。 docker build -t myapp:latest .
docker push <image_name> 将本地镜像推送到远程仓库(需先登录)。 docker push myregistry/myapp:latest
docker save -o <file.tar> <image> 将镜像保存为 .tar 归档文件,用于备份或迁移 。 docker save -o nginx.tar nginx:latest
docker load -i <file.tar> .tar 归档文件加载镜像到本地 。 docker load -i nginx.tar
docker history <image> 查看镜像的构建历史记录 。 docker history nginx

三、 容器生命周期管理

容器是镜像的运行实例,以下命令控制容器的创建、启动、停止和删除。

命令 功能描述 示例
docker run [options] <image> 核心命令:创建并启动一个新容器 。 见下方详细说明
docker ps 列出正在运行的容器 。 docker ps
docker ps -a 列出所有容器(包括已停止的)。 docker ps -a
docker start <container> 启动一个已停止的容器 。 docker start my_container
docker stop <container> 优雅地停止一个运行中的容器 。 docker stop my_container
docker restart <container> 重启一个容器 。 docker restart my_container
docker kill <container> 强制立即终止一个运行中的容器 。 docker kill my_container
docker rm <container> 删除一个已停止的容器 。 docker rm my_container
docker rm -f <container> 强制删除一个容器(无论是否在运行)。 docker rm -f my_container
docker rm $(docker ps -aq) 删除所有已停止的容器(结合子命令)。 docker rm$(docker ps -aq)
docker create [options] <image> 创建一个容器但不立即启动它 。 docker create --name test nginx

docker run 是最复杂也最常用的命令,其核心选项决定了容器的运行方式 :

bash 复制代码
# 基础运行:前台运行一个容器,输出日志到当前终端
docker run nginx

# 后台运行:使用 -d (detach) 参数让容器在后台运行
docker run -d --name my_nginx nginx

# 端口映射:将容器的80端口映射到主机的8080端口
docker run -d -p 8080:80 --name web nginx

# 数据卷挂载:将主机 /opt/data 目录挂载到容器的 /usr/share/nginx/html 目录
docker run -d -v /opt/data:/usr/share/nginx/html --name web_with_data nginx

# 环境变量:向容器内传入环境变量
docker run -d -e "MYSQL_ROOT_PASSWORD=123456" --name mysql mysql:5.7

# 交互式运行:启动一个可交互的容器(如Ubuntu),并分配一个伪终端
docker run -it ubuntu /bin/bash

四、 容器交互与运维

当容器运行后,需要与之交互或查看其状态。

命令 功能描述 示例
docker exec [options] <container> <command> 核心命令:在运行中的容器内执行命令 。 docker exec -it my_nginx /bin/bash
docker attach <container> 连接到正在运行的容器的标准输入、输出和错误流(不推荐,退出可能导致容器停止)。 docker attach my_container
docker logs [options] <container> 查看容器的日志输出 。 docker logs -f --tail 100 my_nginx
docker top <container> 查看容器内运行的进程信息 。 docker top my_nginx
docker stats 动态显示所有运行中容器的资源使用情况(CPU、内存等)。 docker stats
docker cp <src> <dest> 在容器和主机之间复制文件或目录 。 docker cp my_nginx:/etc/nginx/nginx.conf ./
docker inspect <object> 获取容器、镜像等 Docker 对象的底层详细信息(JSON格式)。 docker inspect my_nginx
docker commit <container> <new_image> 将容器的当前状态提交为一个新的镜像(慎用,推荐使用Dockerfile)。 docker commit my_nginx nginx:modified
docker update [options] <container> 动态更新容器的配置(如内存限制)。 docker update --memory 512m my_nginx

五、 网络与数据管理

Docker 的网络和数据卷提供了容器间通信和持久化存储的能力。

命令 功能描述 示例
docker network ls 列出所有 Docker 网络 。 docker network ls
docker network create <network_name> 创建一个自定义网络 。 docker network create mynet
docker network connect <network> <container> 将容器连接到指定网络 。 docker network connect mynet my_nginx
docker volume ls 列出所有 Docker 数据卷 。 docker volume ls
docker volume create <volume_name> 创建一个数据卷 。 docker volume create mydata
docker volume inspect <volume> 查看数据卷的详细信息 。 docker volume inspect mydata

六、 Docker Compose(多容器编排)

对于由多个关联容器组成的应用,使用 Docker Compose 可以通过一个 YAML 文件定义和运行所有服务,极大简化了管理流程 。

  1. 定义服务 (docker-compose.yml):

    yaml 复制代码
    version: '3.8'
    services:
      web:
        image: nginx:alpine
        ports:
          - "80:80"
        volumes:
          - ./html:/usr/share/nginx/html
      db:
        image: mysql:5.7
        environment:
          MYSQL_ROOT_PASSWORD: example
        volumes:
          - db_data:/var/lib/mysql
    volumes:
      db_data:
  2. 常用 Compose 命令:

    命令 功能描述
    docker-compose up 创建并启动所有服务(前台运行)。
    docker-compose up -d 创建并在后台启动所有服务 。
    docker-compose down 停止并移除所有容器、网络等资源 。
    docker-compose ps 列出项目中的所有容器 。
    docker-compose logs 查看所有服务的日志 。
    docker-compose exec <service> <command> 在指定服务的容器内执行命令 。

七、 登录与仓库

需要与私有或公有镜像仓库交互时使用。

命令 功能描述 示例
docker login 登录到 Docker 镜像仓库(默认是 Docker Hub)。 docker login
docker logout 从 Docker 镜像仓库登出 。 docker logout

实战案例:部署一个简单的 Web 应用

结合以上命令,一个典型的 Docker 使用流程如下 :

bash 复制代码
# 1. 从仓库拉取 Nginx 镜像
docker pull nginx:alpine

# 2. 创建本地网页文件
mkdir ~/myweb && echo "<h1>Hello Docker!</h1>" > ~/myweb/index.html

# 3. 运行容器,映射端口并挂载数据卷
docker run -d --name my_web -p 8080:80 -v ~/myweb:/usr/share/nginx/html nginx:alpine

# 4. 验证:在浏览器访问 http://localhost:8080,应看到 "Hello Docker!"
# 5. 查看容器日志
docker logs my_web

# 6. 进入容器内部查看文件
docker exec -it my_web /bin/sh
# 在容器内执行:ls /usr/share/nginx/html

# 7. 停止并清理容器
docker stop my_web
docker rm my_web
相关推荐
好家伙VCC2 小时前
**InfluxDB实战进阶:基于Golang的高性能时序数据采集与可视化方
java·开发语言·后端·python·golang
yu85939582 小时前
WinForm 嵌入 WordExcel 实现方案
开发语言·microsoft·c#
沐知全栈开发2 小时前
SQLite 常用函数
开发语言
TE-茶叶蛋2 小时前
PHP入门指南
开发语言·php
无效的名字2 小时前
windows下,怎么压缩Docker Desktop占用的磁盘空间
windows·docker·容器
lolo大魔王2 小时前
Go语言的循环语句、判断语句、通道选择语句
开发语言·算法·golang
551只玄猫4 小时前
【数学建模 matlab 实验报告12】聚类分析和判别分析
开发语言·数学建模·matlab·课程设计·聚类·实验报告
小陈工6 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
H Journey6 小时前
C++之 CMake、CMakeLists.txt、Makefile
开发语言·c++·makefile·cmake