Docker 核心组件与基础操作全解|镜像、容器、仓库实操命令大全
·
前言
上一篇我们讲解了 Docker镜像、容器、仓库三大核心概念,本篇继续深入,详解三者之间的完整流转关系,同时整理 Docker 日常最常用的镜像操作、容器操作全套命令,附带实操示例,零基础也能快速上手,适合直接用于生产环境。
一、镜像、容器、仓库三者完整关系
Docker 的核心工作流程可以概括为:构建镜像 → 拉取 / 推送镜像 → 运行容器 → 管理容器,三者完整交互关系如下:
- 镜像:静态只读模板,可通过
Dockerfile构建、容器提交生成; - 仓库:镜像存储分发平台,可从仓库
pull拉取镜像,也可将本地镜像push推送到仓库; - 容器:镜像运行的动态实例,可通过镜像
run创建,支持启动、停止、进入、导出删除等操作。
三者完整流转示意图:

简单理解:
- 仓库负责存放镜像;
- 镜像负责提供环境模板;
- 容器负责运行应用服务。
二、Docker 镜像操作命令
2.1 获取镜像:docker pull
Docker 运行容器前,本地必须存在对应镜像,本地无镜像时会自动从仓库下载。
命令格式
docker pull [选项] [Docker Registry地址[:端口号]/]仓库名[:标签]
- 仓库地址:默认是 Docker Hub 官方仓库;
- 仓库名:
<用户名>/<软件名>,官方镜像默认用户名library; - 标签:镜像版本,不指定默认拉取
latest最新版。
实操示例
拉取 Nginx 1.20.2 版本镜像:
[root@localhost ~]# docker pull nginx:1.20.2
1.20.2: Pulling from library/nginx
214ca5fb9032: Pull complete
50836501937f: Pull complete
d838e0361e8e: Pull complete
fcc7a415e354: Pull complete
dc73b4533047: Pull complete
e8750203e985: Pull complete
Digest: sha256:38f8c1d9613f3f42e7969c3b1dd5c3277e635d4576713e6453c6193e66270a6d
Status: Downloaded newer image for nginx:1.20.2
docker.io/library/nginx:1.20.2
下载过程采用分层下载,和镜像分层存储原理一致,下载完成后通过 sha256 摘要校验镜像完整性。
2.2 列出本地镜像:docker image ls /docker images
查看本地已下载的所有镜像:
# 列出所有镜像
docker image ls
# 简写
docker images
# 过滤查看指定仓库镜像
docker image ls centos
# 查看指定版本镜像
docker image ls centos:7.9.2009
# 仅输出镜像ID
docker image ls -q
输出字段说明
| 字段 | 含义 |
|---|---|
| REPOSITORY | 仓库名 |
| TAG | 镜像版本标签 |
| IMAGE ID | 镜像唯一 ID |
| CREATED | 创建时间 |
| SIZE | 镜像大小 |
一个镜像可以对应多个标签,相同镜像 ID 代表是同一个镜像。
2.3 删除本地镜像:docker image rm
删除不需要的本地镜像,支持镜像 ID、镜像名、镜像摘要删除。
命令格式
docker image rm [选项] <镜像1> [<镜像2> ...]
实操示例
# 查看redis镜像
docker image ls redis
# 通过短ID删除镜像
docker image rm 595
# 通过镜像名:标签删除
docker image rm redis:latest
三、Docker 容器基础操作命令
3.1 运行容器:docker run
基于镜像创建并启动容器,是最核心的容器命令。
常用参数
-it:交互式运行,分配伪终端,可进入容器内部;-d:后台守护进程运行容器;--rm:容器退出后自动删除,避免占用空间;-p:端口映射,宿主机端口:容器端口。
示例 1:交互式运行 CentOS 容器
[root@localhost home]# docker run -it --rm centos:7.6.1810 bash
# 进入容器后查看系统版本
[root@1a2a0cf43289 /]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
# 退出容器
exit
![]()
示例 2:后台运行容器
# 后台循环输出hello world
docker run -d centos:7.6.1810 /bin/sh -c "while true; do echo hello world; sleep 1; done"
# 查看容器日志
docker logs 容器ID
docker run 后台执行流程:
- 检查本地镜像,不存在则自动拉取;
- 创建容器,挂载可读写层;
- 配置网络、分配 IP;
- 执行指定应用;
- 应用终止则容器自动停止。
3.2 查看容器状态
# 查看正在运行的容器
docker ps
# 查看所有容器(包含已停止)
docker ps -a
# 仅输出容器ID
docker ps -q
3.3 容器启停操作
# 启动已停止的容器
docker container start 容器ID
# 停止运行中的容器
docker container stop 容器ID
# 重启容器
docker container restart 容器ID
3.4 进入容器
后台运行的容器,需要进入内部操作,推荐使用docker exec,退出不会停止容器。
两种进入方式对比
docker attach:退出容器时,容器会同步停止,不推荐;docker exec:独立终端,退出不影响容器运行,生产首选。
实操示例
# 后台启动容器
docker run -it -d centos:7.6.1810
# 进入容器
docker exec -it 容器ID bash
# 退出容器(容器不会停止)
exit
3.5 容器导出与导入
用于容器跨服务器迁移,导出容器快照,导入为镜像。
# 导出容器快照为tar文件
docker export 容器ID > centos-7.6.1810.tar
# 导入快照为本地镜像
cat centos-7.6.1810.tar | docker import - centos:7.6.1810
3.6 删除容器
# 删除已停止的容器
docker container rm 容器ID
# 强制删除运行中的容器
docker container rm -f 容器ID
# 批量清理所有停止的容器
docker container prune
四、核心总结
- 镜像:核心命令
pull拉取、ls查看、rm删除,是容器的运行模板; - 容器:核心命令
run创建、start/stop启停、exec进入、rm删除,是镜像的运行实例; - 仓库:镜像的存储分发中心,实现镜像的拉取与推送;
- 实操重点:优先掌握
docker pull、docker run、docker ps、docker exec、docker rm,可覆盖 90% 日常使用场景。
更多推荐


所有评论(0)