温馨提示×

Linux下Docker命令大全

小樊
41
2025-11-06 12:12:05
栏目: 智能运维

Linux下Docker命令大全(分类整理)

一、服务管理命令

用于控制Docker守护进程的启动、停止及配置重载,是使用Docker的基础前提。

  • 启动Docker服务sudo systemctl start docker
  • 停止Docker服务sudo systemctl stop docker
  • 重启Docker服务sudo systemctl restart docker
  • 查看Docker服务状态sudo systemctl status docker
  • 设置Docker开机自启sudo systemctl enable docker
  • 重载守护进程配置(修改/etc/docker/daemon.json等配置后需执行):sudo systemctl daemon-reload

二、镜像管理命令

镜像是Docker容器的静态模板,管理镜像是构建、分发应用的核心环节。

  • 拉取镜像:从Docker Hub或私有仓库下载镜像到本地(<image_name>为镜像名称,<tag>为版本标签,默认latest)。
    示例:docker pull ubuntu:22.04
  • 列出本地镜像:查看本地已下载的镜像列表(包含仓库名、标签、镜像ID、创建时间及大小)。
    示例:docker images
  • 删除镜像:移除本地镜像(-f参数强制删除,即使有容器正在使用该镜像)。
    示例:docker rmi -f ubuntu:22.04
  • 构建镜像:通过Dockerfile自定义镜像(-t指定镜像名称及标签,.表示Dockerfile所在目录)。
    示例:docker build -t myapp:v1 .
  • 给镜像打标签:为现有镜像添加新标签(便于推送至仓库或区分版本)。
    示例:docker tag ubuntu:22.04 myrepo/ubuntu:v2
  • 查看镜像历史:查看镜像的构建历史(各层的创建信息)。
    示例:docker history ubuntu:22.04
  • 检查镜像详细信息:获取镜像的完整配置(包括环境变量、端口、挂载卷等)。
    示例:docker inspect ubuntu:22.04

三、容器管理命令

容器是镜像的运行时实例,管理容器是Docker最常用的操作场景。

  • 创建并启动容器:基于镜像生成容器(常用参数:-d后台运行、-p端口映射、--name指定名称、-v挂载卷、--rm容器退出时自动删除)。
    示例:docker run -d --name my-nginx -p 80:80 -v /home/www:/usr/share/nginx/html nginx
  • 列出容器:查看容器状态(-a显示所有容器,包括已停止的;-q仅显示容器ID)。
    示例:docker ps -a
  • 停止容器:停止运行中的容器(发送SIGTERM信号,允许容器优雅关闭)。
    示例:docker stop my-nginx
  • 启动容器:启动已停止的容器。
    示例:docker start my-nginx
  • 重启容器:重启运行中的容器。
    示例:docker restart my-nginx
  • 强制停止容器:立即终止容器(发送SIGKILL信号,不等待优雅关闭)。
    示例:docker kill my-nginx
  • 删除容器:移除已停止的容器(-f强制删除运行中的容器;-v同时删除关联的数据卷)。
    示例:docker rm -f my-nginx
  • 进入容器终端:进入运行中的容器执行命令(-it以交互模式进入,/bin/bash为终端类型)。
    示例:docker exec -it my-nginx /bin/bash
  • 查看容器日志:获取容器的标准输出日志(-f实时跟踪日志,类似tail -f)。
    示例:docker logs -f my-nginx
  • 查看容器内进程:查看容器内运行的进程信息(类似top命令)。
    示例:docker top my-nginx
  • 实时监控容器资源:查看容器的CPU、内存、网络等资源使用情况。
    示例:docker stats my-nginx

四、网络管理命令

Docker提供多种网络模式(bridge、host、overlay等),管理网络可实现容器间通信。

  • 列出所有网络:查看Docker集群中的网络列表(包含网络ID、名称、驱动类型、作用域)。
    示例:docker network ls
  • 查看网络详情:获取网络的详细配置(如子网、网关、连接的容器)。
    示例:docker network inspect bridge
  • 创建网络:自定义网络(bridge为驱动类型,my-network为网络名称)。
    示例:docker network create my-network
  • 连接容器到网络:将运行中的容器关联到指定网络(实现容器间通信)。
    示例:docker network connect my-network my-nginx
  • 断开容器与网络:将容器从指定网络中移除。
    示例:docker network disconnect my-network my-nginx

五、数据卷管理命令

数据卷是容器间共享数据的持久化存储,避免容器删除后数据丢失。

  • 列出所有数据卷:查看Docker集群中的数据卷列表(包含卷名称、驱动类型、挂载点)。
    示例:docker volume ls
  • 查看数据卷详情:获取数据卷的详细信息(如创建时间、挂载路径)。
    示例:docker volume inspect my-volume
  • 创建数据卷:自定义数据卷(my-volume为卷名称)。
    示例:docker volume create my-volume
  • 删除数据卷:移除指定的数据卷(需确保无容器关联该卷,否则需加-f强制删除)。
    示例:docker volume rm my-volume

六、系统运维命令

用于查看系统信息、清理无用资源及批量操作。

  • 查看Docker系统信息:获取Docker集群的整体信息(包括容器数、镜像数、存储驱动、操作系统等)。
    示例:docker info
  • 查看Docker版本:查看Docker客户端及服务端的版本信息。
    示例:docker version
  • 清理无用资源:删除所有未使用的容器、网络、镜像(-a参数删除所有未被使用的镜像,包括悬空镜像)。
    示例:docker system prune -a
  • 清理停止的容器:删除所有已停止的容器。
    示例:docker container prune
  • 清理未使用的镜像:删除所有未被容器引用的镜像。
    示例:docker image prune
  • 清理未使用的数据卷:删除所有未被容器引用的数据卷。
    示例:docker volume prune
  • 清理未使用的网络:删除所有未被容器使用的网络。
    示例:docker network prune
  • 批量停止容器:停止所有运行中的容器($(docker ps -aq)获取所有容器ID)。
    示例:docker stop $(docker ps -aq)
  • 批量删除容器:删除所有容器(包括已停止的)。
    示例:docker rm $(docker ps -aq)
  • 批量删除镜像:删除所有镜像($(docker images -q)获取所有镜像ID)。
    示例:docker rmi $(docker images -q)

七、其他常用命令

满足特殊场景需求,如镜像推送、日志保存等。

  • 登录Docker Hub:向Docker Hub或其他私有仓库认证(需输入用户名、密码)。
    示例:docker login
  • 登出Docker Hub:退出当前登录的仓库。
    示例:docker logout
  • 保存镜像为文件:将本地镜像保存为.tar格式文件(便于传输)。
    示例:docker save my-image:v1 > my-image.tar
  • 加载镜像文件:从.tar文件加载镜像到本地(恢复备份的镜像)。
    示例:docker load < my-image.tar
  • 查看Docker事件流:实时查看Docker守护进程的事件(如容器创建、启动、停止)。
    示例:docker events
  • 复制文件到容器:将宿主机文件复制到容器内(<src_path>为宿主机路径,<dest_path>为容器路径)。
    示例:docker cp /home/file.txt my-nginx:/usr/share/nginx/html/
  • 复制文件从容器:将容器内文件复制到宿主机(<src_path>为容器路径,<dest_path>为宿主机路径)。
    示例:docker cp my-nginx:/usr/share/nginx/html/index.html /home/

0