【Docker基础】常用命令详解

Docker 基础命令

一、镜像(Image)操作

功能 命令
查看本地镜像列表 docker images
下载镜像 docker pull <镜像名>:<标签>(如 docker pull nginx:alpine
查看镜像详细信息 docker inspect <镜像名或ID>
删除镜像 docker rmi <镜像名:标签>docker rmi <镜像ID>

无法直接删除的情况

  1. 镜像已被用于运行容器(需先删容器)
  2. 镜像有多个标签(需指定具体标签或强制删除)
    强制删除docker rmi -f <镜像ID>
功能 命令
导出镜像文件 docker save -o <文件名> <镜像名:标签>
从 文件导入镜像 docker load -i <文件名>

save/load 保留镜像历史层和标签,适合镜像迁移。


二、容器(Container)操作

1. 创建与启动

复制代码
docker run [选项] <镜像> [启动命令]

常用选项:

  • -i:保持 STDIN 打开(交互)
  • -t:分配伪终端(常与 -i 联用)
  • -d:后台运行(守护进程模式)
  • --name:指定容器名称

示例:

复制代码
# 后台运行一个持续输出的容器
docker run -d --name my-centos centos:7 /bin/bash -c "while true; do echo hello; sleep 5; done"

2. 查看容器

命令 说明
docker ps 查看正在运行的容器
docker ps -a 查看所有容器(包括已停止的)

3. 删除容器

命令 说明
docker rm <容器名或ID> 删除已停止的容器
docker rm -f <容器名或ID> 强制删除运行中的容器
docker rm $(docker ps -aq) 批量删除所有容器(慎用!)

4. 进入容器

复制代码
docker exec -it <容器名或ID> /bin/bash   # 推荐(不影响主进程)
# 或
docker exec -it <容器名或ID> sh

不推荐使用 docker attach(退出会终止容器)

5. 文件拷贝(宿主机 ↔ 容器)

复制代码
# 宿主机 → 容器
docker cp /host/path <容器ID>:/container/path

# 容器 → 宿主机
docker cp <容器ID>:/container/path /host/path

6. 容器 ↔ 镜像转换

操作 命令
将容器导出为 tar docker export <容器ID> > abc.tar
从 tar 导入为镜像 `cat abc.tar

注意:

  • export/import 不保留历史层和元数据 ,生成的是扁平镜像(类似 docker commit
  • 推荐用 Dockerfile 构建镜像,而非依赖 import

关键总结

对象 核心命令动词
镜像 pullimagesrmisaveload
容器 runpsrmexeccpexport

最佳实践

  • 镜像管理用 save/load
  • 容器调试用 exec,不用 attach
  • 删除前先 stop,避免强制删除
  • 重要数据使用 Volume,而非依赖容器内部存储
相关推荐
BullSmall1 小时前
Sonarqube9.9 docker 镜像启动后 conf 下的配置文件没有了
docker·容器·eureka
ruofu331 小时前
wsl端是py312,但是项目是py311, 如何下载py311的依赖包(wheels)
python·docker
spider_xcxc2 小时前
Docker 实战:容器化多服务应用,Dockerfile 与 Compose 配置全解析
docker·云原生·eureka·虚拟化·容器化
hay_lee3 小时前
Kubernetes StatefulSet:OrderedReady 极简指南
云原生·容器·kubernetes
晚风吹长发3 小时前
Docker使用——Docker容器及相关命令
linux·运维·服务器·docker·容器·架构
ShiXZ2133 小时前
Docker Compose 安装与配置指南
运维·docker·容器
BullSmall4 小时前
Anolis OS 8.10 Docker 部署 SonarQube 9.9 完整教程
运维·docker·容器
java_logo8 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
生活爱好者!21 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
java_logo21 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程