下载镜像
1、命令
| 操作类型 | 命令 | 作用 |
|---|---|---|
| 检索 | docker search |
用于在镜像仓库(如 Docker Hub)中搜索镜像,比如搜索 Nginx 相关镜像。 |
| 下载 | docker pull |
从镜像仓库拉取镜像到本地 Docker 主机。支持指定版本(如 nginx:1.26.0)或默认拉取 latest 版本。 |
| 列表 | docker images / docker image ls |
列出本地 Docker 主机中已下载的所有镜像,包含镜像名、标签、ID、创建时间、大小等信息。 |
| 删除 | docker rmi |
删除本地不再需要的镜像,需指定 "镜像名:标签"(如 nginx:latest)来精准删除。 |
2、举例
本地原先有本地已有 nginx:latest 镜像,我们现在从docker仓库中拉一个:nginx:1.26.0 镜像,过程如下:
1、docker images 可以看到本地已有 nginx:latest 镜像
2、docker pull nginx:1.26.0
3、再次查看本地镜像:执行 docker image ls(与 docker images 功能一致)
可以看到本地新增了 nginx:1.26.0 镜像,此时同一镜像(Nginx)存在两个版本(latest 和 1.26.0)。
4、删除指定镜像:执行 docker rmi nginx:latest
删除本地的 nginx:latest 版本镜像,保留 1.26.0 版本
图示:docker pull nginx:1.26.0镜像拉取过程

图示:同一镜像(Nginx)存在两个版本

3、镜像标识规则
镜像的标识规则是 "镜像名:标签(版本)
标签(Tag)用于区分同一镜像的不同版本,如
nginx:latest 是最新版本
nginx:1.26.0 是 1.26.0 版本
若不指定标签,Docker 会默认拉取 latest 标签的镜像,但生产环境中建议明确指定版本以保证一致性。
运行容器
命令
- 启动容器
bash
docker run -d -p 8080:80 --name my-nginx -v ~/nginx-web:/usr/share/nginx/html nginx
参数说明:
-d:后台运行容器
-p 8080:80:将宿主机端口映射到容器端口
--name my-nginx:容器命名
-v:挂载目录(将宿主机的 ~/nginx-web 映射到容器内的网页目录)
nginx:指定使用的镜像
- 常见容器管理命令
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看容器 | docker ps |
查看正在运行的容器 |
| 查看所有容器 | docker ps -a |
包含已停止的容器 |
| 停止容器 | docker stop 容器名/ID |
优雅停止运行中的容器 |
| 启动容器 | docker start 容器名/ID |
重新启动已停止的容器 |
| 重启容器 | docker restart 容器名/ID |
快速重载容器应用 |
| 查看状态 | docker stats |
实时监控资源占用(CPU、内存、IO等) |
| 查看日志 | docker logs 容器名/ID |
查看容器运行日志,支持 --follow 实时追踪 |
| 进入容器 | docker exec -it 容器名/ID /bin/bash |
进入交互式命令行环境 |
| 删除容器 | docker rm 容器名/ID |
删除已停止容器,或使用 -f 强制删除 |
图示:主机端口和容器端口映射

注意:
rm是删除容器
rmi是删除镜像
保存和迁移 镜像
如果你在容器中做了修改(如定制 Nginx 页面),可用以下命令保存为新镜像:
bash
docker commit 容器名 mynginx:v1.0
- 保存镜像为 tar 包
bash
docker save -o mynginx.tar mynginx:v1.0
该命令会在当前目录生成一个 mynginx.tar 文件,可用于离线传输或备份。
- 从 tar 包加载镜像
bash
docker load -i mynginx.tar
执行后可在 docker images 中再次看到该镜像。
完整流程是:
修改容器 → docker commit → docker save → 离线传输 → docker load
分享社区
- 登录仓库
bash
docker login
输入 Docker Hub 用户名和密码后登录成功。
- 标记镜像
bash
docker tag mynginx:v1.0 amaidou/mynginx:latest
Docker 镜像的命名需包含 "仓库归属" 信息,才能被正确推送到目标仓库
例如图中把 mynginx:v1.0 标记为 amaidou/mynginx:latest
其中amaidou是 Docker Hub 用户名
mynginx 是镜像名,
latest 是标签。
故:docker tag:给镜像 "命名并打标签"的语法是:docker tag 原镜像名:原标签 目标仓库地址/用户名/新镜像名:新标签
- 推送镜像
bash
docker push amaidou/mynginx:latest
作用:将本地标记好的镜像推送到远程镜像仓库(如 Docker Hub),实现 "社区共享"。
推送完成后,即可在 Docker Hub 看到该镜像,其他用户可通过:
bash
docker pull amaidou/mynginx:latest
直接使用你发布的镜像。
流程:
docker login → docker tag → docker push → 其他用户 docker pull
实验
你可以自己做一下下面的实验,看看能否成功实现。
目标:
-
拉取官方 Nginx 镜像
-
启动容器并修改网页内容
-
使用
docker commit生成自定义镜像(如mynginx:v1.0) -
保存镜像为
mynginx.tar并离线传输 -
在另一台机器上通过
docker load加载 -
登录 Docker Hub 并推送至个人仓库
通过这个实验,你将完整体验 Docker 镜像与容器的生命周期与生态流转过程。