Docker中实现镜像的推送和拉取的代码步骤

 更新时间:2025年07月03日 17:16:27   作者:思静鱼  
在 Docker 中,镜像的推送(push)和拉取(pull)是通过与**Docker 镜像仓库(Registry)**交互完成的,默认仓库是 Docker Hub,但你也可以使用私有仓库(Harbor、Nexus、AWS ECR 等),本文详细介绍了Docker实现镜像推送和拉取的步骤,需要的朋友可以参考下

一、核心命令

操作命令示例说明
登录仓库docker login登录 Docker Hub 或私有仓库
标记镜像docker tag 源 目标给镜像加目标仓库标识
推送镜像docker push 仓库/镜像名上传镜像到仓库
拉取镜像docker pull 镜像名从仓库下载镜像

二、推送镜像步骤详解

1. 登录仓库

docker login

默认是登录 Docker Hub。若使用私有仓库:

docker login your-registry.com

2. 给镜像打标签(tag)

假设本地有镜像:my-app:1.0

docker tag my-app:1.0 username/my-app:1.0
  • 如果是私有仓库:
docker tag my-app:1.0 myregistry.com/dev/my-app:1.0

3. 推送镜像

docker push username/my-app:1.0

私有仓库:

docker push myregistry.com/dev/my-app:1.0

三、拉取镜像

docker pull username/my-app:1.0

私有仓库镜像:

docker pull myregistry.com/dev/my-app:1.0

四、常见私有仓库支持

仓库类型地址示例特点
Docker Hubdocker.io默认公开仓库
Harborharbor.mycompany.com企业常用,权限+审计强
AWS ECRxxxx.dkr.ecr.us-west-1.amazonaws.com/repo云端集成强
GitHub Packagesghcr.io/用户名/镜像名GitHub CI/CD 一体化

五、查看和管理镜像

docker images                  # 查看本地镜像
docker rmi 镜像ID              # 删除镜像
docker image ls                # 同上

六、本地搭建镜像仓库(Registry)

docker run -d -p 5000:5000 --name registry registry:2

推送示例:

docker tag my-app localhost:5000/my-app
docker push localhost:5000/my-app

七、配置 Docker 信任私有仓库(非 HTTPS)

如果是 HTTP 仓库(如 localhost 或自建仓库),需修改:

vim /etc/docker/daemon.json

{
  "insecure-registries": ["localhost:5000"]
}

systemctl restart docker

八、进阶技巧

技巧/问题说明
镜像压缩推送慢用 docker save + gzip 压缩传输
不用每次 login配置 ~/.docker/config.json
CI/CD 自动推送Jenkins/GitLab CI 中嵌入 login、push
清理本地旧镜像docker image prune 自动清理

九、镜像导出/导入(离线推送)

# 导出镜像
docker save my-app:1.0 > my-app.tar

# 拷贝到目标机器后导入
docker load < my-app.tar

十、总结一张图

          docker tag                  docker push
本地镜像 --------------> myregistry.com/my-app:1.0 -------------> 镜像仓库

镜像仓库 <--------------------------------------------- docker pull
                         拉取镜像

到此这篇关于Docker中实现镜像的推送和拉取的代码步骤的文章就介绍到这了,更多相关Docker镜像推送和拉取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker 命令教程(附中文解释)

    Docker 命令教程(附中文解释)

    这篇文章主要介绍了Docker 命令教程的相关资料,在学习Docker的过程中,特地把所以命令实验了一番并整理,希望大家尽快掌握此部分的知识,有需要的小伙伴可以参考下
    2016-10-10
  • Docker如何实现容器间的安全通信方式

    Docker如何实现容器间的安全通信方式

    文章介绍了使用自定义网络、网络访问控制、数据加密、认证与授权机制、安全更新与漏洞管理等方法来提升Docker容器的安全性
    2024-11-11
  • Docker更换镜像源详细代码教程

    Docker更换镜像源详细代码教程

    Docker是一个开源的应用容器引擎,使用Go语言编写,允许开发者将应用及依赖打包到轻量级容器中,可在不同Linux系统间移植,这篇文章主要给大家介绍了关于Docker更换镜像源的相关资料,需要的朋友可以参考下
    2024-08-08
  • Docker容器间通信之BIP使用及配置方式

    Docker容器间通信之BIP使用及配置方式

    Docker使用桥接网络(BridgeNetwork)和BIP(BridgeIP)来管理容器之间的网络通信,默认情况下,Docker会自动创建一个名为bridge的虚拟网络接口,并为每个容器分配一个独立的IP地址,在/etc/docker/daemon.json文件中可以进行自定义配置
    2025-01-01
  • 详解docker nginx 容器启动挂载到本地

    详解docker nginx 容器启动挂载到本地

    这篇文章主要介绍了详解docker nginx 容器启动挂载到本地,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Docker本地镜像发布到阿里云的实现

    Docker本地镜像发布到阿里云的实现

    本文主要介绍了Docker本地镜像发布到阿里云的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • docker容器直接退出如何进入容器调试模式

    docker容器直接退出如何进入容器调试模式

    这篇文章主要介绍了docker容器直接退出,如何进入容器调试,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • Docker-compose进阶配置之环境变量与配置隔离方式

    Docker-compose进阶配置之环境变量与配置隔离方式

    本文系统讲解了Docker-compose环境变量的使用方法,涵盖配置隔离、多环境管理、变量优先级及安全实践,通过.env文件、变量替换和分层策略实现灵活、安全的配置方案,助力高效应对开发到生产环境的配置挑战
    2025-08-08
  • idea链接不上虚拟机的docker里的mongodb问题及解决

    idea链接不上虚拟机的docker里的mongodb问题及解决

    这篇文章主要介绍了idea链接不上虚拟机的docker里的mongodb问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 详解ASP.NET Core Docker部署

    详解ASP.NET Core Docker部署

    这篇文章主要介绍了详解ASP.NET Core Docker部署。详细介绍了如何在Docker容器中运行ASP.NET Core应用程序。有兴趣的可以了解一下。
    2016-12-12

最新评论