Docker 搭建私人仓库

docker 搭建私人仓库有下面几种方式:

  • 1、docker hub 官方私人镜像仓库
  • 2、本地私有仓库

官方私人镜像仓库搭建很简单(就是需要有魔法,否则就异步到第二种方法吧),只需要 login、pull、tag、push 几种命令就完事了。而本地私人镜像仓库则比较麻烦一点而且只能存储在本地不能公开。

下面我们就来简单的介绍一下怎么搭建自己的私人仓库吧!

官方镜像仓库

首先,我们需要在 docker hub 这里申请注册一个账号并登录,同时也要在 Docker Desktop 中进行登录。完成登录以后,我们首先在命令行中使用命令进行登录

docker login

出现 Login Succeeded 就代表登录成功了!
在这里插入图片描述

注:你的身份验证凭证将被存储在本地目录的 .dockercfg 文件中

接着我们查看一下本地镜像,可以看到这里有一个 nginx,待会儿就拿这个进行测试吧!

docker images

在这里插入图片描述
首先对镜像打上 tag,也就是重命名。

注:重命名格式需要 用户名/镜像名:版本号

docker tag nginx codegetters/nginx:1.0.0

在这里插入图片描述
检查一下看看是否成功打上了 tag
在这里插入图片描述

到了这里我们就完成了大部分的工作了,只需要 push到自己的账号中就好了。

注:push 的镜像名要写全包括最后的版本号,否则就会失败

docker push codegetters/nginx:1.0.0

在这里插入图片描述
完成以后我们就可以删除本地镜像了,不过删除不是我们的重点就不过多展示了。我们接着进入 docker hub 并登录自己的账号。点击 Repositories 就可以看到我们的仓库中已经有了 nginx
在这里插入图片描述
到了这里我们就算完成了,如果想要从自己的仓库中拉下来就执行下面的命令即可

docker pull codegetters/nginx:1.0.0

本地私有仓库

为什么使用私用仓库?
公司的项目一般不予许我们上传到 Docker Hub 这类的公共仓库中,所有学会创建一个私有仓库也是非常必要的。虽然 hub.docker 上可以保存镜像,但是网速相对较慢,在内部环境中搭建一个私有的公共仓库是个更好的方案。

官方提供了 docker hub 来作为一个公开的集中仓库。然而,本地访问 Docker Hub 速度往往很慢,并且很多时候需要一个本地的私有仓库只供网内使用。

registry 就是管理 docker 镜像的服务。接下来的操作也是主要使用 registry 这个镜像进行,

首先我们先拉取 registry 镜像

docker pull registry

在这里插入图片描述
接着让 registry 跑起来并且将镜像的 /var/lib/registry 挂载到我们的本地 E:\software_cache\docker 这个目录中,同时将本地的 5000 端口映射到镜像中。

docker run -d -p 5000:5000 -v E:\software_cache\docker:/var/lib/registry --restart=always registry

在这里插入图片描述
运行成功后可以访问 ip:5000/v2 如果是下图的状态就算运行成功了。

在这里插入图片描述

访问 ip:5000/v2/_catalog 查看镜像仓库情况,这里的空数组表明还没有上传任何镜像
在这里插入图片描述

接下来我们打开 docker desktop 打开设置,将自己的 ip:5000 添加到下面的数组中(没有的话需要自己的添加)以此允许本地推送镜像,如果是 Linux 的话,则需要找到 /etc/docker/daemon.json (没有需要自己创建)

  "insecure-registries": [
    "http://xxx.xxx.xxx.xxx:5000"
  ],

在这里插入图片描述

完成设置以后,我们就可以安按照上面的操作流程了。先对镜像打上 tag 并检查一下

注:重命名格式需要 用户名/镜像名:版本号

docker tag nginx xxx.xxx.xxx.xxx:5000/nginx:1.0.0

docker images

在这里插入图片描述
完成 tag 后就将镜像推送到我们的本地仓库了

注:push 的镜像名要写全包括最后的版本号,否则就会失败

docker push xxx.xxx.xxx.xxx:5000/nginx:1.0.0

在这里插入图片描述

这个时候我们访问刚才的页面,就显示了刚才推送的镜像-nginx
在这里插入图片描述
当然,我们也可以使用命令也可以进行查看是否成功推送

curl http://xxx.xxx.xxx.xxx:5000/v2/_catalog

在这里插入图片描述

也可以使用这个命令来访问本地仓库的 tag 列表

curl http://xxx.xxx.xxx.xxx:5000/v2/_catalog | python -m json.tool

在这里插入图片描述

我们来运行一下 registry 中的镜像看看是否运行能够运行成功。这里我是将本地的 80 端口映射到 nginx 中的 80 端口了

docker run -d -p 80:80 --name nginx xxx.xxx.xxx.xxx:5000/nginx:1.0.0

在这里插入图片描述

我们访问一下本地 ip:80 出现了 nginx 页面就表明搭建成功了!
在这里插入图片描述

使用 Harbor 管理仓库

什么是 Harbor

harbor 是一个由 vm 公司开源的企业级容器镜像仓库,有以下功能:
管理用户界面
基于角色的访问控制
LDAP/AD 集成及日志审计等基本运维操作

Harbor的三种安装方式(这里我就选择 离线安装了):

  • 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
  • 离线安装:安装包包含部署的相关镜像,因此安装包比较大
  • OVA安装程序(第三方):当用户具有vCenter环境时,使用此安装程序,在部署 OVA后启动Harbor

前置准备:下载 Harbor online 安装包 中的 harbor-offline-installer-vx.x.x.tgz到本地进行解压缩,然后将 harbor.yml.tmpl 文件复制并重命名为 harbor.yml,接着使用文本编辑器打开并修改 hostname 为本地 ip 地址。如果说你不使用 https 进行访问(一般都是内网使用),那就将相关的配置都给注释掉。只注释关于 https 的内容就好了,其他内容最好不要动。
在这里插入图片描述

然后打开命令行进入这个目录中,使用 docker 加载本地镜像

docker load -i harbor.v2.10.1.tar.gz

在这里插入图片描述
加载完成后我们检查一下已经成功加载了 Harbor 本地镜像了
在这里插入图片描述
使用 ./prepare 预处理一些文件,初始化文件
在这里插入图片描述

接下来执行 install.sh 就正式开始安装了
在这里插入图片描述
如果出现 Harbor has been installed and started successfully 表示安装成功,我们查看一下 docker 进程

  • 27
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

画一个圆_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值