通常我们在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代码存储

基于Docker搭建私有镜像仓库相关推荐

  1. Docker搭建私有镜像仓库

    一. 常见镜像仓库服务 镜像仓库(Docker Registry)有公共的和私有的两种形式: 公共仓库:例如Docker官方的Docker Hub,国内也有一些云服务商提供类似于Docker Hub的 ...

  2. CentOS7 Docker搭建私有镜像仓库

    简述 docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是公司 ...

  3. 搭建Docker本地私有镜像仓库

    在使用Docker service create创建容器时,Docker首先默认从Docker Hub官方去下载镜像,这很不方便,很多时候我们的镜像都是使用Dockerfile自定义私有镜像,不对外公 ...

  4. Nexus 搭建私有镜像仓库

    Nexus 搭建私有镜像仓库 说明 国内网络环境下直接使用默认的 npm 下载资源过慢,所以很多文章中都建议将 npm 的 registry 切换为 淘宝的 npm 镜像,如下 npm config ...

  5. Docker Registry 私有镜像仓库批量清理镜像

    Docker 私有镜像仓库批量清理镜像 前言 在频繁长期使用镜像仓库后,由于镜像仓库清理镜像比较费劲,业内也没有一个比较好的清理方案,官方提供的镜像仓库清理也比较费劲,导致 Docker 镜像仓库越积 ...

  6. 一文搞定docker创建私有镜像仓库(配置启动http和https方式私有仓库服务,查询、删除私有仓库镜像)

    docker除了使用公共镜像仓库之外,也可以创建私有镜像仓库.对于内部开发.测试.部署环境来说,是很有必要的.        如何创建私有镜像仓库服务呢?当然是以容器的方式啦! 1.拉取官方regis ...

  7. 基于satis搭建私有composer仓库

    what`s satis Satis 是一个静态的 composer 代码库生成器. 安装satis cd /www/ composer create-project composer/satis - ...

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

    dockerhub: https://registry.hub.docker.com/_/registry 安装命令 docker run -p 5000:5000 -d -v /opt/regist ...

  9. android 加载系统私有库,Android 搭建私有maven仓库及上传项目

    前言 在日常工作及项目迭代过程中,一定有不少同学自己写了一些框架性的东西,或者一些好用的工具,总之就是能复用的代码.然而也有不少同学为了复用这些代码不得不复制粘贴到不同项目中,这样相同的功能出现了多份 ...

最新文章

  1. datagrid底部显示水平滚动_DevExpress WPF v19.1:Data Grid/Tree List等控件功能增强
  2. Linux常用压缩解压命令
  3. 怎么用计算机计算出选手最后得分,计算选手最后得分(限制分的值,且最后按n或N键结束,其他键继续)...
  4. java封装Mongodb3.2.1工具类
  5. python【蓝桥杯vip练习题库】ADV-100第二大整数
  6. linux内核网络协议栈--linux协议栈调用流程(七)
  7. Ubuntu终端多窗口分屏Terminator
  8. redis哨兵集群的搭建
  9. 20145233《网络对抗》Exp8 Web基础
  10. Android Shape Drawable Resources
  11. 短小有趣的c语言代码,分享一段有趣的小代码
  12. .NET Core 2.1.12 与 2.2.6 发布,修复 URL 重定向欺骗漏洞
  13. UE4之设置打包程序分辨率
  14. lopatkin俄大神精简中文系统Windows 7 Professional SP1 7601.24540 x64 ZH-CN LITE10
  15. vscode插件开发流程
  16. 电子计算机上面的mrc是什么意思,计算器上 M MRC GT CE MU 键分别是什么意思?
  17. IDEA TODO标签使用
  18. 在Docker安装Calibre-web搭建网上书城
  19. 【等保实践】等级保护仅仅是合规吗?
  20. 【TRIO-Basic从入门到精通教程十六】UDP通讯测试补充

热门文章

  1. [js] 使用for-in语句能保证遍历对象的顺序吗?如果不能那为什么?如果可以那又如何保证?
  2. 前端学习(2645):懂代码之header表头页之未读消息
  3. 前端学习(2319):angular2概述
  4. “约见”面试官系列之常见面试题之第六十一篇之IE和DOM事件流(建议收藏)
  5. 前端学习(2009)vue之电商管理系统电商系统之渲染商品属性的结构
  6. oracle之基本的sql_select语句之课后练习
  7. 前端学习(1253):Vue前后端交互
  8. 前端学习(556):margin与容器的尺寸
  9. 第一百二十二期:大数据分析:红包先抢好,还是后抢好
  10. 12.多媒体和超链接标签及其应用实例