docker常见命令:从拉取到推送社区仓库

下载镜像

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 标签的镜像,但生产环境中建议明确指定版本以保证一致性。

运行容器

命令

  1. 启动容器
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:指定使用的镜像

  1. 常见容器管理命令
操作 命令 说明
查看容器 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
  1. 保存镜像为 tar 包
bash 复制代码
docker save -o mynginx.tar mynginx:v1.0

该命令会在当前目录生成一个 mynginx.tar 文件,可用于离线传输或备份。

  1. 从 tar 包加载镜像
bash 复制代码
docker load -i mynginx.tar

执行后可在 docker images 中再次看到该镜像。

完整流程是:

修改容器 → docker commit → docker save → 离线传输 → docker load

分享社区

  1. 登录仓库
bash 复制代码
docker login

输入 Docker Hub 用户名和密码后登录成功。

  1. 标记镜像
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 原镜像名:原标签 目标仓库地址/用户名/新镜像名:新标签

  1. 推送镜像
bash 复制代码
docker push amaidou/mynginx:latest

作用:将本地标记好的镜像推送到远程镜像仓库(如 Docker Hub),实现 "社区共享"。

推送完成后,即可在 Docker Hub 看到该镜像,其他用户可通过:

bash 复制代码
docker pull amaidou/mynginx:latest

直接使用你发布的镜像。

流程:

docker login → docker tag → docker push → 其他用户 docker pull

实验

你可以自己做一下下面的实验,看看能否成功实现。

目标:

  1. 拉取官方 Nginx 镜像

  2. 启动容器并修改网页内容

  3. 使用 docker commit 生成自定义镜像(如 mynginx:v1.0)

  4. 保存镜像为 mynginx.tar 并离线传输

  5. 在另一台机器上通过 docker load 加载

  6. 登录 Docker Hub 并推送至个人仓库

通过这个实验,你将完整体验 Docker 镜像与容器的生命周期与生态流转过程。

相关推荐
时间售卖铺3 小时前
Docker实战:一键部署轻量级容器
运维·docker·云原生
tedcloud1237 小时前
Docker Compose 部署 Uptime Kuma:配置 HTTPS、QQ 邮箱告警与数据备份
服务器·网络协议·ui·docker·容器·https·开源
syntaxsage8 小时前
Dive:Docker 镜像层可视化分析工具
运维·其他·docker·容器
java_logo8 小时前
Docker 部署 Samba:轻松搭建局域网文件共享
运维·docker·容器·文件共享·samba·smb·轩辕镜像
todoitbo18 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
是枚小菜鸡儿吖1 天前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
螺蛳粉 螺蛳粉1 天前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
wefg11 天前
【Docker】镜像相关指令
运维·docker·容器
java_logo1 天前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
死磕音视频1 天前
Open WebUI 入门:用 Docker 装上本地对话界面并连接 Ollama
docker·ollama·本地大模型·open webui