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 镜像与容器的生命周期与生态流转过程。

相关推荐
CodeMartain2 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器
llrraa20104 小时前
配置docker国内镜像源
运维·docker·容器
华为云开发者联盟5 小时前
告别繁琐操作,华为云码道 + Docker重塑远程开发体验
人工智能·学习·docker·华为云·软件开发·华为云码道
m_136876 小时前
Docker Desktop WSL2 启动失败:ext4.vhdx 拒绝访问(E_ACCESSDENIED)完整解决方案
docker
米高梅狮子7 小时前
Ceph 分布式存储 部署
linux·运维·数据库·分布式·ceph·docker·华为云
米高梅狮子8 小时前
Redis
数据库·redis·mysql·缓存·docker·容器·github
代码熬夜敲Q9 小时前
Docker基础
运维·docker·容器
亚空间仓鼠9 小时前
Docker容器化高可用架构部署方案(十四)
docker·容器·架构
Zhu75812 小时前
【配置优化】docker29及以上版本配置优化。
docker
土星云SaturnCloud12 小时前
土星云AI边缘计算-算法运行环境搭建:Docker部署全流程实操
服务器·人工智能·docker·ai·边缘计算