专栏首页niceyoo基于Docker搭建私有镜像仓库
原创

基于Docker搭建私有镜像仓库

通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是公司完全处于内网状态不能访问外网,再或者你想个性化定制某些配置等等等,所以这就需要用到私有存储库了,今天我们就基于registry镜像搭建属于我们自己的私有仓库。

1、安装指令

docker pull registry

默认拉取最新版:

2、配置私有仓库地址

vim /etc/docker/daemon.json

输入如下参数,注意修改为自己的ip地址:

"insecure-registries": ["10.211.55.4:5000"]

:wq 保存退出,然后我们重启启动一下 docker

systemctl restart docker

3、创建容器

docker run -d -p 5000:5000 --name registry docker.io/registry

部分参数说明:

  • -d:让容器在后台运行
  • -p:指定容器内部使用的网络端口映射到我们使用的主机上
  • --name:指定容器创建的名称

4、重新加载配置

sudo systemctl daemon-reload

然后浏览器访问:http://10.211.55.4:5000/v2/_catalog

如果访问不到,尝试关闭防火墙:

systemctl stop firewalld

如果还是访问不不到,可以重启一下docker

sudo systemctl restart docker

然后重新运行一下容器。

5、验证上传镜像到私有仓库

我们使用HelloWorld镜像进行测试,首先先拉取一下:

docker pull hello-world

拉取之后我们看一下镜像名称及版本:

至此我们就有了一个hello-world镜像,接下来我们使用 push 指令将镜像推送到刚刚搭建的registry中:

# 标记hello-world该镜像需要推送到私有仓库
docker tag hello-world:latest 127.0.0.1:5000/hello-world:latest

# 通过push指令推送到私有仓库
docker push 127.0.0.1:5000/hello-world:latest

再来访问:http://10.211.55.4:5000/v2/_catalog

我们可以看到私有仓库目录已经有刚刚推送上去的 hello-world 镜像了。

6、验证从私有仓库下载镜像

验证完了上传,我们再来测试一下下载镜像:

# 格式如下:
docker pull 127.0.0.1:5000/镜像名称:镜像版本号

# 以hello-world为例:
docker pull 127.0.0.1:5000/hello-world

到这可能有的小伙伴就有疑惑了,你这通过ip能拉取吗,我看你一直用的127.0.0.1,毕竟私有仓库搭建完是要给别人用的嘛~

那么我们就测试一下:

docker pull 10.211.55.4:5000/hello-world:latest

如上图所示,通过ip也是可以拉取成功的,但是在这再额外补充一下,有的小伙伴可能提示如下:

Trying to pull repository 10.211.55.4:5000/hello-world ...
Get https://10.211.55.4:5000/v1/_ping: http: server gave HTTP response to HTTPS client

这种显然是拉取失败了,提示大致就是,尝试从https上拉取,但是返回的是http响应,如何解决呢?

我们可以通过如下进行处理一下,xxx修改为自己的ip地址:

echo '{ "insecure-registries":["xxx.xxx.xxx.xxx:5000"] }' > /etc/docker/daemon.json

其实如果你是按上我上边这些步骤下来是不会有问题的,在步骤2配置私有仓库地址时,其实我们已经配置了insecure-registries,但是配置后我们需要重启启动一下docker才可以生效,毕竟是配置了系统文件嘛~

ok,至此整个搭建过程完毕~

--- END ---

推荐阅读:

基于Docker的Redis集群搭建

Docker安装Nginx

基于Docker方式实现Elasticsearch集群

Docker中Maven私服的搭建

基于Docker搭建Gitlab代码存储

本文首发于博客园:https://www.cnblogs.com/niceyoo/p/13058238.html

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • 基于 registry 搭建 Docker 私有镜像仓库

    dockerhub: https://registry.hub.docker.com/_/registry

    全球技术精选
  • Docker搭建私有镜像仓库

    kongxx
  • 搭建个私有docker镜像仓库

    但是这个私有仓不能满足我们的需求,生产线上万一该私有仓服务器故障,其他服务器也无法接管。再者,也没有页面可以便于管理。

    我的小碗汤
  • 搭建Docker私有的镜像仓库

    加入一行: docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart...

    斯武丶风晴
  • Docker学习之搭建私有镜像仓库

    过节之前来一发,又是许久没整理笔记了,今天跟大家聊聊Docker如何搭建私有仓库的几种方式。首先我们来回顾一下之前讲到的Doker 平台的基本构成。

    小柒2012
  • harbor搭建企业docker私有镜像仓库

    # curl -fsSL https://get.docker.com/ | sh

    聂伟星
  • Docker如何搭建私有registry镜像仓库

    说明:在docker01机器有registry镜像和docker-registry-web镜像,用搭建私有镜像仓库和web页面访问。

    踏歌行
  • Docker学习之搭建私有镜像仓库

    过节之前来一发,又是许久没整理笔记了,今天跟大家聊聊Docker如何搭建私有仓库的几种方式。首先我们来回顾一下之前讲到的Doker 平台的基本构成。 Dok...

    小柒2012
  • docker私有镜像仓库

    nexus 不光可以做为私人的maven仓库,还可以作为docker的镜像仓库 如何使用nexus 做maven仓库,可以参考: 部署maven私服

    是小张啊喂
  • 搭建私有镜像仓库

    6, 查看该私有库的所有镜像,因为这个库并不是官方的,所有Podman, docker CLI 中并没有内置的指令可以使用。所以, 我们使用curl.

    用户9822880
  • 使用Docker Registry快速搭建私有镜像仓库

    在 Docker 中,当我们执行 docker pull xxx 的时候,可能会比较好奇,Docker 会去哪儿查找并下载镜像呢?

    星哥玩云
  • 基于 Distribution / Harbor 部署 Docker 私有镜像仓库

    Docker 在 2015 年推出了 Distribution 项目,即 Docker Registry 2。相比于 Old Registry,Registry...

    iMike
  • 详解docker实战之搭建私有镜像仓库 - kurbernetes

    justmine
  • docker搭建私有仓库

    拉取Registry私有镜像仓库,在我们本地搭建一个内网的仓库,避免将一些私密项目暴露在公网,引发不必要的风险

    婷婷的橙子
  • 搭建私有镜像仓库registry

    将镜像标记、归入指定仓库 声明:因作者多次尝试记录。导致本文中新镜像的名称未保持统一,实际操作时请注意。建议自定义名称

    烤红薯
  • 搭建 Harbor 私有镜像仓库

    keepyan
  • docker搭建私有仓库

    "insecure-registries":["192.168.174.130:5000"]

    爱撒谎的男孩
  • Docker 私有仓库搭建

    在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是...

    程序员果果

扫码关注腾讯云开发者

领取腾讯云代金券