Docker 全部命令详解:从基础到高级

Docker 全部命令详解:从基础到高级

Docker 是现代软件开发和运维中不可或缺的工具,它通过容器化技术提供了轻量级的虚拟化解决方案。掌握 Docker 的所有命令是高效管理和运维容器的关键。本文将详细介绍 Docker 的所有命令,从基础的镜像和容器管理,到高级的网络和数据卷操作,帮助你全面掌握 Docker。


1. Docker 基础命令

1.1 全局命令
  • 帮助:显示 Docker 的帮助信息,列出所有可用命令和选项。

    bash 复制代码
    docker --help
  • 版本:查看 Docker 的版本信息。

    bash 复制代码
    docker --version
  • 信息:显示 Docker 的系统信息,包括版本、资源使用情况等。

    bash 复制代码
    docker info

2. 镜像管理命令

镜像是容器的基础,管理镜像的命令包括创建、查看和删除镜像。

  • 拉取镜像:从 Docker Hub 或其他注册表拉取镜像。

    bash 复制代码
    docker pull <镜像名称>:<标签>
  • 列出镜像:查看本地存储的镜像列表。

    bash 复制代码
    docker images
  • 查看镜像详细信息:查看镜像的详细信息,如配置、层次结构等。

    bash 复制代码
    docker inspect <镜像名称>:<标签>
  • 删除镜像:删除本地镜像。确保镜像未被任何容器使用。

    bash 复制代码
    docker rmi <镜像名称>:<标签>
  • 构建镜像:根据 Dockerfile 文件构建镜像。

    bash 复制代码
    docker build -t <镜像名称>:<标签> <路径>
  • 标记镜像:为镜像打标签,用于重命名或分发。

    bash 复制代码
    docker tag <源镜像>:<标签> <目标镜像>:<标签>
  • 保存镜像到文件:将镜像保存为 tar 文件。

    bash 复制代码
    docker save -o <文件名>.tar <镜像名称>:<标签>
  • 加载镜像从文件:从 tar 文件加载镜像。

    bash 复制代码
    docker load -i <文件名>.tar

3. 容器管理命令

容器是 Docker 中运行应用的基本单位。容器管理的命令包括创建、查看、启动和删除容器。

  • 运行容器:从镜像创建并启动容器。

    bash 复制代码
    docker run [OPTIONS] <镜像名称>:<标签>
  • 列出容器

    • 仅运行中的容器

      bash 复制代码
      docker ps
    • 包括所有容器(包括已停止的)

      bash 复制代码
      docker ps -a
  • 查看容器详细信息:查看容器的详细信息。

    bash 复制代码
    docker inspect <容器ID或名称>
  • 停止容器:停止一个正在运行的容器。

    bash 复制代码
    docker stop <容器ID或名称>
  • 启动容器:启动一个已停止的容器。

    bash 复制代码
    docker start <容器ID或名称>
  • 重启容器:重启一个容器。

    bash 复制代码
    docker restart <容器ID或名称>
  • 删除容器:删除一个或多个容器。

    bash 复制代码
    docker rm <容器ID或名称>
  • 查看容器日志:查看容器的日志输出。

    bash 复制代码
    docker logs <容器ID或名称>
  • 进入容器:以交互模式进入正在运行的容器。

    bash 复制代码
    docker exec -it <容器ID或名称> /bin/bash
  • 导出容器文件系统:将容器的文件系统导出到 tar 文件中。

    bash 复制代码
    docker export -o <文件名>.tar <容器ID或名称>
  • 导入容器文件系统:从 tar 文件中导入容器的文件系统。

    bash 复制代码
    docker import <文件名>.tar
  • 生成 Dockerfile:记录当前容器的状态,生成 Dockerfile。

    bash 复制代码
    docker commit <容器ID或名称> <镜像名称>:<标签>

4. 数据卷管理命令

数据卷用于持久化和共享容器的数据。数据卷管理的命令包括创建、查看和删除数据卷。

  • 创建数据卷:创建一个新的数据卷。

    bash 复制代码
    docker volume create <卷名称>
  • 列出数据卷:查看所有 Docker 数据卷。

    bash 复制代码
    docker volume ls
  • 查看数据卷详细信息:查看数据卷的详细信息。

    bash 复制代码
    docker volume inspect <卷名称>
  • 删除数据卷:删除数据卷。确保数据卷未被任何容器使用。

    bash 复制代码
    docker volume rm <卷名称>

5. 网络管理命令

Docker 网络用于容器之间的通信。网络管理的命令包括创建、查看和删除网络。

  • 列出网络:查看所有 Docker 网络。

    bash 复制代码
    docker network ls
  • 查看网络详细信息:查看网络的详细信息。

    bash 复制代码
    docker network inspect <网络名称>
  • 创建网络:创建一个新的 Docker 网络。

    bash 复制代码
    docker network create <网络名称>
  • 删除网络:删除 Docker 网络。确保网络未被任何容器使用。

    bash 复制代码
    docker network rm <网络名称>

6. Docker Compose 命令

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过 docker-compose.yml 文件配置服务,可以轻松管理复杂的应用。

  • 启动服务 :根据 docker-compose.yml 文件启动服务。

    bash 复制代码
    docker-compose up
  • 后台启动服务:在后台模式下启动服务。

    bash 复制代码
    docker-compose up -d
  • 停止服务:停止并删除服务容器。

    bash 复制代码
    docker-compose down
  • 查看服务日志:查看服务的日志输出。

    bash 复制代码
    docker-compose logs
  • 构建服务 :根据 docker-compose.yml 文件构建服务。

    bash 复制代码
    docker-compose build
  • 查看服务状态:查看服务的状态。

    bash 复制代码
    docker-compose ps

7. 高级命令

  • 提交容器更改:将容器的当前状态提交为新镜像。

    bash 复制代码
    docker commit <容器ID或名称> <镜像名称>:<标签>
  • 推送镜像到注册表:将镜像推送到 Docker Hub 或其他镜像注册表。

    bash 复制代码
    docker push <镜像名称>:<标签>
  • 获取镜像历史:查看镜像的历史记录。

    bash 复制代码
    docker history <镜像名称>:<标签>
  • 查找镜像:从 Docker Hub 查找镜像。

    bash 复制代码
    docker search <镜像名称>

结论

掌握 Docker 的所有命令是高效管理和运维容器的基础。通过熟练使用这些命令,你可以更好地创建、管理和调试 Docker 环境中的应用程序。希望本文的命令汇总能帮助你更深入地了解和运用 Docker。如果你有任何疑问或需要进一步的帮助,请随时提问!


这篇博客旨在帮助你全面了解 Docker 命令的使用。如果有特定的使用场景或命令需要进一步讲解,请随时与我联系!

相关推荐
Lary_Rock2 分钟前
Android 编译问题 prebuilts/clang/host/linux-x86
android·linux·运维
绵绵细雨中的乡音15 分钟前
Linux进程学习【基本认知】
linux·运维·学习
matrixlzp26 分钟前
K8S Service 原理、案例
云原生·容器·kubernetes
GnixAij1 小时前
Docker SSH端口转发
docker·ssh
珹洺1 小时前
Linux操作系统从入门到实战(三)Linux基础指令(上)
linux·运维·服务器
剁椒排骨1 小时前
win11什么都不动之后一段时间黑屏桌面无法显示,但鼠标仍可移动,得要熄屏之后才能进入的四种解决方法
运维·windows·经验分享·计算机外设·win11·win10
angushine2 小时前
让Docker端口映射受Firewall管理而非iptables
运维·docker·容器
归寻太乙2 小时前
Linux环境变量
linux·运维·服务器
m0Java门徒2 小时前
面向对象编程核心:封装、继承、多态与 static 关键字深度解析
java·运维·开发语言·intellij-idea·idea
Sapphire~2 小时前
Linux-06 ubuntu 系统截图软件使用简单记录
linux·运维·ubuntu