Ubuntu系统中Docker的常用命令总结

以下是 Ubuntu 系统中 Docker 常用命令的分类总结,涵盖容器管理、镜像操作、网络与数据卷等核心场景,方便日常使用参考:

一、Docker 服务管理

javascript 复制代码
# 启动 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

# 关闭 Docker 开机自启动
sudo systemctl disable docker

二、镜像(Image)管理

javascript 复制代码
# 拉取镜像(默认最新版本,可指定版本如 nginx:1.25)
sudo docker pull [镜像名]:[标签]
# 示例:拉取最新 nginx 镜像
sudo docker pull nginx

# 查看本地所有镜像
sudo docker images

# 删除指定镜像(需先删除依赖该镜像的容器)
sudo docker rmi [镜像ID/镜像名:标签]
# 强制删除(即使有容器依赖)
sudo docker rmi -f [镜像ID/镜像名:标签]

# 构建镜像(从当前目录的 Dockerfile)
sudo docker build -t [镜像名:标签] .
# 示例:构建名为 myapp、标签为 v1 的镜像
sudo docker build -t myapp:v1 .
# 指定 Dockerfile 路径构建
sudo docker build -f /path/to/Dockerfile -t myapp:v1 .

# 推送镜像到仓库(需先登录)
sudo docker login
sudo docker push [仓库地址/用户名/镜像名:标签]

三、容器(Container)管理

  1. 容器基本操作
javascript 复制代码
# 新建并启动容器(常用参数:-d 后台运行,-p 端口映射,--name 命名)
sudo docker run [选项] [镜像名:标签] [容器内命令]
# 示例:后台启动 nginx,映射主机 8080 端口到容器 80 端口,命名为 mynginx
sudo docker run -d -p 8080:80 --name mynginx nginx

# 查看正在运行的容器
sudo docker ps
# 查看所有容器(包括停止的)
sudo docker ps -a

# 启动已停止的容器
sudo docker start [容器ID/容器名]

# 停止运行中的容器
sudo docker stop [容器ID/容器名]

# 重启容器
sudo docker restart [容器ID/容器名]

# 强制停止容器(类似"断电",谨慎使用)
sudo docker kill [容器ID/容器名]

# 删除容器(需先停止容器)
sudo docker rm [容器ID/容器名]
# 强制删除运行中的容器
sudo docker rm -f [容器ID/容器名]
# 删除所有停止的容器
sudo docker container prune
  1. 容器交互与信息查看
javascript 复制代码
# 进入运行中的容器(交互式终端,退出后容器不停止)
sudo docker exec -it [容器ID/容器名] /bin/bash
# 示例:进入 mynginx 容器
sudo docker exec -it mynginx /bin/bash

# 查看容器日志(-f 实时跟踪,-t 显示时间戳)
sudo docker logs -f -t [容器ID/容器名]

# 查看容器详细信息(配置、网络等)
sudo docker inspect [容器ID/容器名]

# 查看容器内进程
sudo docker top [容器ID/容器名]

# 复制主机文件到容器内
sudo docker cp [主机文件路径] [容器ID/容器名]:[容器内路径]
# 复制容器内文件到主机
sudo docker cp [容器ID/容器名]:[容器内路径] [主机文件路径]

四、网络(Network)管理

javascript 复制代码
# 查看所有 Docker 网络
sudo docker network ls

# 创建自定义网络(默认 bridge 模式)
sudo docker network create [网络名]
# 示例:创建名为 mynet 的网络
sudo docker network create mynet

# 查看网络详情
sudo docker network inspect [网络名/网络ID]

# 将容器连接到网络(容器需停止后操作)
sudo docker network connect [网络名] [容器名/容器ID]

# 断开容器与网络的连接
sudo docker network disconnect [网络名] [容器名/容器ID]

# 删除网络(需先断开所有连接的容器)
sudo docker network rm [网络名/网络ID]

五、数据卷(Volume)管理(持久化数据)

javascript 复制代码
# 创建数据卷
sudo docker volume create [卷名]

# 查看所有数据卷
sudo docker volume ls

# 查看数据卷详情(包括存储路径)
sudo docker volume inspect [卷名]

# 删除数据卷(需先断开关联的容器)
sudo docker volume rm [卷名]
# 清理无关联的数据卷
sudo docker volume prune

# 启动容器时挂载数据卷(-v 卷名:容器内路径)
sudo docker run -d -v myvolume:/app --name myapp myapp:v1

六、系统与清理命令

javascript 复制代码
# 查看 Docker 系统信息(版本、镜像数、容器数等)
sudo docker info

# 清理未使用的资源(停止的容器、未被引用的镜像、网络等)
sudo docker system prune
# 清理包括未使用的镜像(谨慎,可能删除有用的基础镜像)
sudo docker system prune -a

常用参数说明

  • -d:后台运行容器(守护进程模式)
  • -it:交互式终端(常用于进入容器)
  • -p [主机端口]:[容器端口]:端口映射(如 -p 80:80
  • -v [主机路径/卷名]:[容器路径]:数据挂载(持久化或文件共享)
  • --name [名称]:指定容器 / 网络 / 卷的名称(方便管理)
  • --rm:容器停止后自动删除(适合临时任务)

通过以上命令,可满足 Docker 日常开发、部署和维护的大部分需求。实际使用时,可通过 docker [命令] --help 查看更详细的参数说明。

相关推荐
我命由我123453 小时前
IDEA - IDEA 快速回到页面首尾、页面快速滑动、快速定位到指定行
java·运维·ide·后端·java-ee·intellij-idea·intellij idea
深兰科技3 小时前
廊坊市市长刘媛率队到访深兰科技,推动机器人制造基地与产业投资落地
人工智能·科技·机器人·scala·symfony·深兰科技·廊坊市市长刘媛
沫儿笙3 小时前
发那科机器人在氩弧焊中搭配节气装置的优势
人工智能·机器人
m0_650108247 小时前
【论文精读】CMD:迈向高效视频生成的新范式
人工智能·论文精读·视频扩散模型·高效生成·内容 - 运动分解·latent 空间
电鱼智能的电小鱼7 小时前
基于电鱼 AI 工控机的智慧工地视频智能分析方案——边缘端AI检测,实现无人值守下的实时安全预警
网络·人工智能·嵌入式硬件·算法·安全·音视频
AI小小怪7 小时前
在Linux服务器上安装CVAT (Docker 28.5.1)
运维·docker·容器·数据标注·cvat
年年测试7 小时前
AI驱动的测试:用Dify工作流实现智能缺陷分析与分类
人工智能·分类·数据挖掘
唐兴通个人8 小时前
人工智能Deepseek医药AI培训师培训讲师唐兴通讲课课程纲要
大数据·人工智能
小坏讲微服务8 小时前
Docker-compose 搭建Maven私服部署
java·spring boot·后端·docker·微服务·容器·maven