运维之我的docker-部署私有仓库Registry

因为生产情况下官方容器还是比较慢的,所以会用到自建docker仓库。docker官方提供完整部署仓库的容器,你只需要提供域名证书,把文件系统挂载到容器,一个用户密码文件就可以使用基本的仓库功能了。数据灾备的话因为使用本地或者第三方存储所以都有很成熟的方案,很方便了。

启动一个registry容器

[[email protected]
distribution-master]# docker run -d -p 0.0.0.0:5000:5000 --name registry
registry:2

9ed2f91a7056f1109d2146122930b12f7d077a5404f621647d12eeeb29725260

提交一个本地的镜像到本地仓库

[[email protected] ~]#
docker tag redis localhost:5000/redis

[[email protected] ~]#
docker push localhost:5000/redis

The push refers to a
repository [localhost:5000/redis]

4cefd98bbdaf: Pushed

552b670af774: Pushed

af287523a42a: Pushed

c235d5b4caa3: Pushed

307248831aca: Pushed

387483b2c715: Pushed

a2ae92ffcd29: Pushed

latest: digest:
sha256:b41356be6cc70109a9fb6e53e39e930ece67f89189d4453be920f668e1225a06 size:
1783

下面情况是因为你本地仓库如果不进行证书认证只能127.0.0.1访问,所以我们要创建密钥

[[email protected] ~]#
docker tag redis 192.168.198.116:5000/redis

[[email protected] ~]#
docker push 192.168.198.116:5000/redis

The push refers to a
repository [192.168.198.116:5000/redis]

Get https://192.168.198.116:5000/v1/_ping:
http: server gave HTTP response to HTTPS client

配置一个域名

给余名准备一个加密证书,启动容器

docker run -d -p
5000:5000 --restart=always --name registry \

-v /etc/docker/certs:/certs \

-e
REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \

-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \

registry:2

重新提交镜像

[[email protected] ~]#
docker tag redis registry.nginxs.net:5000/redis

[[email protected] ~]#
docker push registry.nginxs.net:5000/redis

The push refers to a
repository [registry.nginxs.net:5000/redis]

4cefd98bbdaf: Pushed

552b670af774: Pushed

af287523a42a: Pushed

c235d5b4caa3: Pushed

307248831aca: Pushed

387483b2c715: Pushed

a2ae92ffcd29: Pushed

latest: digest:
sha256:b41356be6cc70109a9fb6e53e39e930ece67f89189d4453be920f668e1225a06 size:
1783

给服务添加一个用户验证

第一步创建用户密码文件,并修改文件权限

[[email protected]
docker]# htpasswd -Bbn baishaohua nginxs.net >>/etc/docker/certs/htpasswd

[[email protected]
docker]# chmod 600 /etc/docker/certs/htpasswd

第二步启动容器

docker
run -d -p 5000:5000 --restart=always --name registry \
  -v `pwd`/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd"
\
  -e
"REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e
REGISTRY_AUTH_HTPASSWD_PATH=/certs/htpasswd \
  -v  /etc/docker/certs:/certs \
  -e
REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e
REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  registry:2

测试登录

[[email protected] ~]#
docker login registry.nginxs.net:5000

Username (testuser):
baishaohua

Password:

Login Succeeded

时间: 2024-08-10 08:39:56

运维之我的docker-部署私有仓库Registry的相关文章

Docker部署私有仓库(registry&Harbor)

仓库(Repository)是集中存放镜像的地方.一个容易混淆的概念是注册服务器(registry).实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像.从这方面来说,仓库可以被认为是一个具体的项目或目录.例如对于仓库地址docker.sina.com.cn/centos:centos7来说,docekr.sian.com.cn是注册服务器地址,centos是仓库名,centos7是仓库的tag(标签). Docker Hub 官方仓库目前docker官

Docker 之 私有仓库registry

摘要: 1.拉去 registry镜像,例如在daocloud.io/registry这个私有镜像仓库 docker pull daocloud.io/registry 2.运行容器,挂在镜像内docker镜像仓库/var/lib/registry 至本地/root/my_docker_registry 1.拉去 registry镜像,例如在daocloud.io/registry这个私有镜像仓库 docker pull daocloud.io/registry 2.运行容器,挂在镜像内dock

Docker搭建私有仓库registry

拉取上传镜像 拉取镜像 docker pull <registry>[:<port>]/[<namespace>/]<name>:<tag> # registry :仓库服务器地址;不指定默认是docker hub # port :端口;默认443,因为是https协议: # namespace :名称空间,指是哪个用户的仓库,如果是顶层仓库,可以省: # name :仓库名: # tag :标签名:默认是latest版本: 上传镜像 docke

运维工具SaltStack之一安装部署

运维工具SaltStack之一安装部署 一.概述 salt是一个异构平台基础设置管理工具,使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System. 二.基本原理 采用C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信.minion上

自动化运维之Samba4.2.0部署遇到问题:Ignoring invalid value &#39;share&#39; for parameter &#39;security&#39;

1, download file wget https://download.samba.org/pub/samba/stable/samba-4.2.0.tar.gz 2,解压文件 tar -xzvf samba-4.2.0.tar.gz 3,编译安装Samba cd samba-4.2.0 ./configure --prefix=/usr/local/samba/ make;make install 4,编译过程及状态 * installing bin/default/source4/ut

自动化运维系列之SaltStack批量部署Apache服务

自动化运维系列之SaltStack批量部署Apache服务 saltstack原理 SalStack由master和minion构成,master是服务端,表示一台服务器:minion是客户端,表示多台服务器.在Master上发送命令给符合条件的minion,Minion就会执行相应的命令.Master和Minion之间是通过ZeroMQ(消息队列)进行通信的. SaltStack的Master端的监听端口是4505和4506,4505端口是Master和Minion认证通信端口:4506端口是

docker创建私有仓库

1.查看远程仓库中的列表$ sudo docker search registry    //会列出你所需要的仓库 2.获取registry仓库$ sudo docker pull registry   //最新 3.运行 $ sudo docker run -p 5000:5000  docker.io/registry   //-p映射端口 3.1查看容器运行情况[[email protected] docker]# docker psCONTAINER ID        IMAGE   

教你分分钟搞定Docker私有仓库Registry

一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像. 二.安装Docker及Registry 安装Docker见之前博文: http://www.cnblogs.com/Javame/p/5492543.html 安装Regi

Docker的私有仓库

学习Docker的过程中Docker的私有仓库一直没能成功,就是因为CentOS 6.x和CentOS 7默认引入了支持https认证,每次在push和pull的时候都会报错,今天是周末,利用一天的时间反复测试和网上案列的整合,总算是成功了,也借此机会对学习Docker的朋友有所帮助. 个人的愚见:博友在练习的时候建议用CentOS 7.x系统,不建议用CentOS 6.x系统 一.准备 地址规划: Docker私有仓库地址:192.168.0.109 Docker客户端地址:192.168.0