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 命令的使用。如果有特定的使用场景或命令需要进一步讲解,请随时与我联系!

相关推荐
小袁搬码17 分钟前
Windows中指定路径安装DockerDesktop
windows·docker·容器·docker desktop
吃肉不能购28 分钟前
Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
运维·yolo·自动化
学Linux的语莫32 分钟前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
qq_3129201142 分钟前
docker 部署 kvm 图形化管理工具 WebVirtMgr
运维·docker·容器
踏雪Vernon42 分钟前
[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式
linux·docker·容器·harmonyos
学Linux的语莫1 小时前
搭建服务器VPN,Linux客户端连接WireGuard,Windows客户端连接WireGuard
linux·运维·服务器
黑牛先生1 小时前
【Linux】进程-PCB
linux·运维·服务器
Karoku0661 小时前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
条纹布鲁斯2 小时前
dockerdsktop修改安装路径/k8s部署wordpress和ubuntu
docker·kubernetes
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql