2023-08-24:Docker仓库
1、仓库
仓库(Repository)是存储和分发Docker镜像的地方。
Docker Hub的命名来自于GitHub,后者是我们常用的代码存储、分发的地方。
Registry(注册服务器)与Repository(仓库)
- Registry是存放仓库的实际服务器,Repository是一个具体的项目或者目录;
- 一个服务器中可以有多个仓库,一个仓库中可以有多个镜像。
例如某个镜像地址是docker.io/centos,这里的docker.io是注册服务器,centos是仓库名。它们之间的关系如下图:
仓库有公共镜像仓库、私有镜像仓库之分。
2、公共镜像仓库
一般是Docker官方或者其他第三方组织(阿里云、腾讯云、网易云等)提供的,允许所有人注册和使用的镜像仓库。
Docker Hub是全球最大的镜像市场,这些镜像主要来自软件提供商、开源组织、社区。大部分的OS、软件镜像都可以直接在Docker Hub下载并使用。
创建仓库
首先要有一个Docker Hub账号,之后点击Create Repository,新建一个仓库用于推送镜像:
这里展示了在账号lagoudocker中,创建了一个名为busybox的仓库,创建好仓库后我们就能推送本地镜像到这个仓库了。
过程:
拉取bushybox镜像
1 | docker pull busybox |
登录
在推送(上传)镜像之前,我们要先用docker login登录一下镜像服务器,因为只有登录的用户才能推送镜像到仓库:
1 2 3 4 5 6 | docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https: //hub .docker.com to create one. Username: lagoudocker Password: Login Succeeded |
使用docker login命令登录镜像服务器,这时Docker会要求我们输入用户名和密码,输入刚刚登录Docker Hub时的账号密码,看到Login Succeeded表示登录成功。登录成功后就能推送镜像到自己创建的仓库了。
补充
docker login会默认请求Docker Hub,如果你想登录第三方镜像仓库或者自建的镜像仓库,在docker login后加上注册服务器即可。例如我们想登录阿里云镜像服务器,则用docker login registry.cn-beijing.aliyuncs.com,输入阿里云镜像服务的用户名密码即可。
重命名镜像
在本地镜像推送到自定义仓库前,我们要把镜像“重命名”以下,才能正确推送到自己创建的镜像仓库中:
1 | docker tag busybox lagoudocker /busybox |
推送
镜像重命名之后,再用docker push就能推送镜像到自己创建的仓库中了。
1 | docker push lagoudocker /busybox |
之后,busybox这个镜像就被推送到自定义的镜像仓库了。这里我们也可以新建其他的镜像仓库,然后把自己构建的镜像推送到仓库中。
有时,出于安全/保密的需求,我们可能需要构建一个私有的镜像仓库。
3、搭建私有仓库
略
具体可去05 仓库访问:怎样搭建属于你的私有仓库?自行查看。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性