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

相关推荐
Will_Ye3 小时前
在Ubuntu中使用Docker打包程序(Conda, pip)
ubuntu·docker·conda
轩辕Ruins3 小时前
docker compose配置容器只允许指定的外部IP访问
docker
❀͜͡傀儡师3 小时前
docker离线镜像文件选择导入脚本
运维·docker·容器
安卓开发者3 小时前
Docker 安装和配置 Elasticsearch 完整指南
elasticsearch·docker·容器
筑梦之路3 小时前
docker ubuntu22.04更新报错问题——筑梦之路
运维·docker·容器
CodeHorizon3 小时前
Docker Buildx 构建多平台镜像的强大工具
其他·docker·容器·eureka
weixin_436525077 小时前
Docker 镜像导出与导入教程(Windows - Linux)
运维·docker·容器
..Move...14 小时前
快速搭建Docker私有仓库指南
运维·docker·容器
jiuri_121516 小时前
Docker使用详解:在ARM64嵌入式环境部署Python应用
python·docker·容器