Docker 之registry私有仓库搭建
Docker 之registry私有仓库搭建
官方提供的私有仓库docker registry用法
https://yeasy.gitbooks.io/docker_practice/repository/registry.html
1.下载registry镜像并且启动私有仓库容器
(1)下载
docker pull registry
私有仓库会被创建在容器的/var/lib/registry下,因此通过-v参数将镜像文件存储到本地的/opt/data/registry下 端口映射容器中的5000端口到宿主机的5000端口
(2)启动
docker run -d -p 服务器端口:容器端口 -v 服务器目录:私有仓库容器目录
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
(3)测试运行
检查启动的registry容器
docker ps

测试连接容器
# telnet 服务器IP 端口(根据运行的端口)
telnet 10.0.0.209 5000

直接用浏览器访问
http://ip+端口(5000)可以测试/v2/_catalog
页面会有如下显示

2.修改镜像tag
以docker registry的地址端口开头
# 语法: docker tag 原镜像名 服务器IP:5000/镜像名
如:
# docker tag centos 10.0.0.209:5000/mycentos
这个时候我们会遇到一个https限制推送镜像的问题
3.解决非 HTTPS 方式推送镜像问题
(1)修改/etc/docker/daemon.json配置
通过 Docker 的配置选项来取消这个限制,这里必须写正确json数据
添加一行配置
下面的ip为运行私有仓库的ip,端口5000
[root@node209 ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://t7h7r7wr.mirror.aliyuncs.com"],
"insecure-registries":["10.0.0.209:5000"]
}
(2)添加/lib/systemd/system/docker.service配置
写入到[Service]配置块中,加载此配置文件
vim /lib/systemd/system/docker.service
添加一行配置
EnvironmentFile=-/etc/docker/daemon.json
结果如下截图:

(3)重新加载docker及重启并重启仓库容器
重新加载docker
systemctl daemon-reload
重启docker
systemctl restart docker
重启仓库容器
# docker ps -a # 找到registry 镜像所对应的容器ID
# dokcer start 容器ID
(4)推送本地镜像
# docker push 10.0.0.209:5000/mycentos

5.查看推送情况
由于docker registry没有web界面,但是提供了API数据
要想查看已经上传的镜像, 通过以下链接访问即可查看:
官网教程:https://docs.docker.com/registry/spec/api/#listing-repositories
注:10.0.0.209为部署仓库的服务器IP
法一:
curl http://10.0.0.209:5000/v2/_catalog
法二:
浏览器访问http://10.0.0.209.10:5000/v2/_catalog
法一:截图

法二:截图

都可得上传镜像到私有仓库成功
6.删除本地镜像,从私有仓库中下载
#docker rmi 10.0.0.209:5000/mycentos #删除刚才上传的本地镜像
#docker pull 10.0.0.209:5000/mycentos #从私有仓库pull下载镜像
#docker images # 查看镜像

Docker 之registry私有仓库搭建的更多相关文章
- Docker Registry私有仓库搭建
部署registry 准备一个registry.mydocker.com 的证书 对私有registry取名registry.mydocker.com 目录规划 仓库数据目录:/data/docker ...
- 6.云原生之Docker容器Registry私有镜像仓库搭建实践
转载自:https://www.bilibili.com/read/cv15219863/?from=readlist #1.下载registry仓库并设置数据存放的目录(并生成认证账号密码) doc ...
- Docker部署Registry私有镜像库
拉取镜像 docker pull registry:2.6.2 生成账号密码文件,这里采用htpasswd方式认证 docker run --rm --entrypoint htpasswd re ...
- Registry私有仓库搭建及认证
本节内容: Registry相关概念 Registry V1和V2 安装Docker 搭建本地registry v2 搭建外部可访问的Registry 添加认证 更高级的认证 registry web ...
- 基于IP的docker private registry 私有仓库的搭建
鉴于国内的网络环境,如果公司内部大量使用docker,镜像上传下载将是个非常耗时的工作,搭建一个私有仓库可以很好的解决自有镜像的存储,如果你在私有网络,不能使用域名的话,那么本文可以作为一个很好的例子 ...
- Docker registry私有仓库(七)
Docker registry私有仓库搭建基本几步流程(采用nginx+认证的方式) 1. 申请免费的ssl证书 https://buy.wosiqn.com/free 2. 设置nginx ssl证 ...
- Docker系列教程03-Docker私有仓库搭建(registry)
简介 仓库(Repository)是集中存放镜像的地方,又分为公共镜像和私有仓库. 当我们执行docker pull xxx的时候,它实际上是从registry.docker.com这个地址去查找,这 ...
- docker私有仓库搭建(ubuntu 14.04和centos7)
最近是在做一个关于docker云化的项目,马上就要开始实战.下午先做了一个私有仓库搭建的实验,先大概做个笔记,有兴趣的蛮看一下吧. 先在所有机子上都安装上docker,我的是两台ubuntu,分别是1 ...
- CentOS7 Docker私有仓库搭建及删除镜像 【转】
文章来源:centos7 Docker私有仓库搭建及删除镜像 如果不想用私有镜像库,你可以用docker的库 https://hub.docker.com 环境准备 环境:两个装有Docker 17. ...
随机推荐
- EF三种数据库操作模型比较
https://blog.csdn.net/xiongmeiqin/article/details/80196089 EF 中 Code First 的数据迁移以及创建视图 写在前面: EF 中 Co ...
- Educational Codeforces Round 78 (Rated for Div. 2)D(并查集+SET)
连边的点用并查集检查是否有环,如果他们的fa是同一个点说明绕了一圈绕回去了.n个点一共能连n-1条边,如果小于n-1条边说明存在多个联通块. #define HAVE_STRUCT_TIMESPEC ...
- linux shell 正则表达式详解
正则 1. 普通正则表达式 2. 扩展正则表达式 普通正则表达式 . 任意一个字符 * 前面一个字符出现0次或者多次 [abc] 中括号内任意一个字符 [^abc] 非括号内任意一个字符 [0-9] ...
- 【C语言】写一个函数,并调用该函数求两个整数的最大公约数和最小公倍数
程序分析: 在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数. 求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N. 如果余数为0,则N即为所求:如果余 ...
- django view 视图控制之数据返回的视图函数
八.视图 view 概述:views.py定义的python函数,它接受Web请求并且返回Web响应. 有几个页面就有几个视图view user出入url地址,发送request--->urls ...
- vue项目用npm安装sass包遇到的问题及解决办法
IDEA启动vue程序,浏览器访问时出现如下情况的关于node-sass的错误: 错误1: Module build failed (from ./node_modules/sass-loader/d ...
- CRT中国剩余定理 & Lucas卢卡斯定理
数论_CRT(中国剩余定理)& Lucas (卢卡斯定理) 前言 又是一脸懵逼的一天. 正文 按照道理来说,我们应该先做一个介绍. 中国剩余定理 中国剩余定理,Chinese Remainde ...
- css中定义变量
css中定义变量 定义变量可分多种情况: 1.定义全局变量 :root { --borderColor: #ccc;} 2.定义某元素下的变量 .look{ --borderColor: #ccc;} ...
- MyBatis操作mysql数据库查询出来是时间戳的问题
在pojo类中用java.sql.Date接收就能正常显示
- JavaScript 实现单例模式的两种方式
单例模式: 要求一个类只有一个实例化对象存在 这个实例化对象必须提供一个全局对外访问方式 这个实例化对象应当是私有的,不能被外界直接访问或者更改 方式1 get实现 唯一实例化:判断这个对象是否存在, ...