代码编织梦想

centos7搭建及使用DOCKER私有仓库

环境:
虚拟机1:192.168.31.11,centos-7.3,docker-18.03.1-ce,私有仓库服务器
虚拟机2:192.168.31.12,centos-7.5,docker-18.03.1-ce

一、私有仓库的搭建
1、拉起registry镜像
启动docker以后,执行“docker pull registry:latest”,拉取成功后,执行“docker images”可以看到拉取下来的镜像。执行结果如下图(第一次pull时不知什么原因卡了,强制中断后再次pull就好了):
这里写图片描述
说明:registry是docker官方提供的私有仓库镜像,用这个镜像运行起来的容器就是一个私有仓库。

2、运行registry镜像

docker run -d -p 5000:5000 --restart=always --name private-docker-registry --privileged=true -v /opt/docker-registry:/var/lib/registry b2b03e9146e1

这里写图片描述
说明:“-d”表示容器在后台运行。“-p 5000:5000”表示将容器的5000端口映射到虚拟机192.168.31.11的5000端口。“–restart=always”表示容器随着docker启动而启动,同时若容器异常终止,会自动启动;实测表明,使用“docker stop”命令停止容器后,此参数不会让容器自动重启。“–name private-docker-registry”设置容器名。“–privileged=true”使容器真正具有容器内的root权限,详情自行百度。“-v /opt/docker-registry:/var/lib/registry”将容器中的“/var/lib/registry”目录映射到虚拟机192.168.31.11的“/opt/docker-registry”;“/var/lib/registry”是私有仓库容器存放镜像的目录,网上很多教程说这个目录是“/tmp/registry”,实际上“/tmp/registry”是老版本的镜像目录,经实测,最新版本的镜像仓库目录是“/var/lib/registry”。

二、私有仓库的使用
1、将镜像推送到私有仓库
(1)修改现有镜像的标签
结合我的实际情况,执行:docker tag b2b03e9146e1 192.168.31.11:5000/registry:latest-20180802
这里写图片描述
说明:这个命令为我之前下载的registry镜像新建了一个REPOSITORY和TAG。我们在原有的REPOSITORY之前增加了“192.168.31.11:5000/”,这就是我们刚搭建的私有仓库的地址。docker在push和pull时会使用REPOSITORY属性中指定的地址作为私有仓库地址,如果REPOSITORY属性中没有指定,会使用docker默认的仓库地址。命令中还修改了镜像的TAG属性,这个属性可改可不改,如果命令中不指定TAG属性,会使用原有的TAG属性,即“latest”。
(2)将镜像推送到私有仓库
执行:docker push 192.168.31.11:5000/registry:latest-20180802
结果如图:这里写图片描述
我们看到,报错了,push失败。这是因为docker在操作镜像仓库时(search、push、pull),默认使用HTTPS的方式,这要求镜像仓库配置SSL,本文不讲述如何搭建支持HTTPS的私有仓库,有此需求的,请自行百度。
那么,我们只能让docker使用HTTP而不是HTTPS来访问我们刚搭建的私有仓库,操作如下:
a、编辑docker配置文件“/etc/docker/daemon.json”,内容如下:

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

说明:这个配置告诉docker,当对地址为“192.168.31.11:5000”的镜像仓库进行search、push、pull操作时,使用非安全的方式,即HTTP。可配置多个地址,例如:{ “insecure-registries”: [ “192.168.31.11:5000”, “192.168.31.12:5000”]}。这个配置文件是docker的默认配置文件路径,默认是不存在的,需要创建,配置文件路径也可以更改,有关详情可参考docker官网或自行百度。
b、重启docker,执行:systemctl restart docker.service。
重启完成后再push,就成功了。然后我们再看之前映射的“/opt/docker-registry”目录,可以看到里面有东西了。如图:
这里写图片描述

2、从私有仓库拉取镜像
(1)配置docker,让其使用HTTP方式访问私有仓库,具体操作详见上文“步骤二.1.(2)”。我们从私有仓库拉取镜像的服务器是192.168.31.12,与私有仓库不是同一台服务器,因此需要执行此操作。
(2)查看私有仓库的镜像及tag列表
不知为何,截至撰写本文,docker似乎不支持使用search命令查询使用上述方式搭建的私有仓库,只能通过命令进行查询,具体如下:
a、查询镜像
curl http://192.168.31.11:5000/v2/_catalog
b、查询镜像下的tag
curl http://192.168.31.11:5000/v2/registry/tags/list
这里写图片描述
(3)从私有仓库拉取镜像
执行:docker pull 192.168.31.11:5000/registry:latest-20180802
这里写图片描述
执行完成后,使用“docker images”命令,我们发现已经把镜像拉取到了本地。

三、从私有仓库中删除镜像
请参考:https://blog.csdn.net/lastsweetop/article/details/78185706
将镜像删除后,再次push刚删除的镜像,会提示“Layer already exists”。此时,重启docker,再次push刚删除的镜像,就没有问题了。因此,可以判断是docker中存在缓存,导致不重启就无法上传,至于如何在不重启docker的条件下清理layer缓存,暂时没有查到。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/guan0005/article/details/81369047

centos7 安装docker及搭建私有仓库_kse_music的博客-爱代码爱编程_centos7 搭建docker仓库

一、安装准备 必须是 64 位操作系统内核在 3.10 以上【最后centos7及以上,不推荐单独升级内核】 如果不满足以上两个条件,就不用往下看了 二、安装 先手动更新yum源安装包 yum up

docker私有仓库的搭建-爱代码爱编程

docker私有仓库的搭建 1、为什么需要私有仓库 Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像 到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜 像放到公网当中,那么我们就需要搭建自己的私有仓库来存储和管

CentOS搭建私有yum仓库-爱代码爱编程

CentOS搭建私有yum仓库 以光盘内容作为yum仓库 #挂载光盘 [root@server ~]# mount /dev/sr0 /mnt mount: /mnt: WARNING: device write-protected, mounted #备份当前yum配置 [root@server ~]# mkdir /etc/yum.repos.d

基于Window,Docker,IDEA实现安装Nexus,创建私有maven仓库和上传jar包到私有仓库-爱代码爱编程

问题现象: 最近项目中需要在window服务器上搭建maven仓库,于是我就学习了这方面的知识。 问题分析: 1. 首先启动 docker / docker desktop,这里讲解基于 docker desktop 上的学习心得。   2. cmd窗口输入: docker search nexus   3. 选择第一个,用的人最多的,

Docker系列--- docker 私有仓库 | 创建 | 使用 | 详解-爱代码爱编程

docker 私有仓库 ①下载 registry 镜像②指定镜像仓库地址③创建 registry 容器并开放端口④给镜像打标签后上传⑤获取私有仓库列表查看是否上传成功⑥从私有仓库下载镜像 ①下载 registry 镜像 docker pull registry ②指定镜像仓库地址 vim /etc/docker/daemon.jso

Docker-搭建私有仓库-爱代码爱编程

通常我们在docker拉取的镜像都是在docker hub或quay.io等公有仓库获取,那么在实际工作中,每个公司如果使用到docker,那么肯定是要搭建自己的私有仓库。那么接下来就通过docker提供的registry镜像来搭建我们自己的私有仓库。 1、拉取registry镜像 这里默认拉取最新版本,不指定版本就默认拉取latest版本 dock

Docker 搭建本地私有仓库-爱代码爱编程

文章目录 一、搭建本地私有仓库1、首先下载registry 镜像2、在daemon.json文件中添加私有镜像仓库地址3、运行 registry 容器4、为镜像打标签5、上传到私有仓库6、列出私有仓库的所有镜像7、列出私有仓库的centos镜像有哪些tag8、先删除原有的centos的镜像,再测试私有仓库下载 一、搭建本地私有仓库 有时候使用

Docker的私有仓库-爱代码爱编程

Docker 私有仓库 一、私有仓库搭建 # 1、拉取私有仓库镜像 docker pull registry # 2、启动私有仓库容器 docker run -id --name=registry -p 5000:5000 registry # 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"re

centos6&7搭建私有仓库-爱代码爱编程

无论6跟7都要先准备两个文件,一个CentOS-Base.repo,另一个是epel.repo。 首先,制作私有仓库的目的就是为那些在内网的机器提供标准版本的yum源,所以我们可以先找一台可以访问外网的机器,将仓库制作下来,之后导入到内网机器,并设置从指定目录yum的repo即可使用。 一、centos7 准备两个文件: 1.base文件 [roo

docker-配置私有仓库_溪野~~的博客-爱代码爱编程

Docker简介 Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器 (Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag 的镜像。 Docker运行中使用的默认仓库是 Docker Hub 公共仓库。  2. Registry 工作原理 2.1  一次docker pull 或 push背后发生的事情  

docker——搭建本地私有仓库_不回头的蛙兄的博客-爱代码爱编程

目录 引言 1 首先下载registry镜像 2 在daemon.json文件中添加私有镜像仓库的地址并重启  3 创建registry容器并开放端口  4 给镜像打标签后上传到私有仓库  5 获取私有仓库列表查看是否上传成功  6 验证:从私有仓库下载镜像 引言 Docker 官方提供了一个搭建私有仓库的镜像 registry ,运

docker(五)构建私有仓库_李王家的翠花的博客-爱代码爱编程

这篇文章我们主要讲解创建docker私有仓库。 简单概述一下,就是docker提供了一个搭建私有仓库的镜像registry ,运行该镜像的容器并且对外暴露5000端口就算是搭建完成了。 一、安装运行docker-regis

centos7上搭建docker harbor私有仓库-爱代码爱编程

什么是harbor仓库 Harbor是由Vmware公司开源的管理容器镜像的平台。 搭建环境 关闭防火墙和seliunx [root@harbor ~]# systemctl stop firewalld && systemctl disable firewalld [root@harbor ~]# setenforce

centos7-爱代码爱编程

文章目录 1. 私有仓库搭建与配置2. docker 客户端配置3. 镜像上传至私有仓库4. 客户端拉取镜像 1. 私有仓库搭建与配置 搭建私有仓库的作用是为了使用docker的镜像,把开发环