1.拉取镜像
docker pull hyper/docker-registry-web
docker pull registry
2.安装
yum install docker-compose

3.搭建过程

(1)创建存放配置文件和私有仓库镜像的存储目录

mkdir -p /usr/local/docker-registry/conf/registry   #存放仓库的配置信息
mkdir -p /usr/local/docker-registry/conf/registry-web #存放仓库UI界面的配置信息
mkdir -p /usr/local/docker-registry/registry #存放仓库的镜像
mkdir -p /usr/local/docker-registry/db #仓库的访问信息
(2)生成证书
openssl req -new -newkey rsa:4096 -days 365 \
-subj "/CN=192.168.199.189" \
-nodes -x509 \
-keyout /usr/local/docker-registry/conf/registry-web/auth.key \
-out /usr/local/docker-registry/conf/registry/auth.cert
(3)创建仓库的配置文件
vi /usr/local/docker-registry/conf/registry/config.yml
内容如下:
version: 0.1

storage:
filesystem:
rootdirectory: /var/lib/registry http:
addr: 0.0.0.0:5000 auth:
token:
realm: http://192.168.199.189:50000/api/auth
service: 192.168.199.189:5000
issuer: 'admin'
rootcertbundle: /etc/docker/registry/auth.cert
(4)创建仓库UI的配置文件
vi /usr/local/docker-registry/conf/registry-web/config.yml

 内容如下:

registry:
url: http://192.168.199.189:5000/v2
name: 192.168.199.189:5000
readonly: false
auth:
enabled: true
issuer: 'admin'
key: /conf/auth.key

(5)创建docker-compose启动配置文件

version: '2'
services:
registry-web:
image: hyper/docker-registry-web:latest
ports:
- 50000:8080
volumes:
- /usr/local/docker-registry/conf/registry-web:/conf:ro
- /usr/local/docker-registry/db:/data
networks:
- registry-net
depends_on:
- registry
restart: always
registry:
image: registry:2.4.1
ports:
- 5000:5000
volumes:
- /usr/local/docker-registry/conf/registry:/etc/docker/registry:ro
- /usr/local/docker-registry/registry:/var/lib/registry
environment:
- REGISTRY_STORAGE_DELETE_ENABLED=true
networks:
- registry-net
restart: always
networks:
registry-net:
#driver: default #如果报错就注掉

  yml文件主要格式,每一级都要缩进,最好用一个tab键,切记,如果启动失败,一定好好检查这几个配置文件,特别是空格(tab键)。

(6)通过docker-compose拉取镜像启动容器

docker-compose up -d 
 
 (7) vim /lib/systemd/system/docker.service
添加 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.199.189:5000

然后执行下面命令刷新配置:

systemctl daemon-reload

重启docker:

systemctl restart docker
 
(8) 配置docker pull默认从本地仓库拉去镜像
vim /usr/lib/systemd/system/docker.service
启动参数增加--add-registry=192.168.199.189:5000 --insecure-registry=192.168.199.189:5000
重启docker:
# systemctl daemon-reload
# systemctl restart docker  
 
验证:
docker info

其他主机下载镜像:
在另外一台需要获取镜像的主机上配置registry为无CA模式:
vim /etc/docker/daemon.json

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

搭建完成!

可以打开浏览器输入:192.168.199.189:50000

输入账号密码登录,默认是admin/admin,可以登录后修改,默认账号只有ui的管理功能,如果需要push功能还需要自己配置权限。

也可以使用docker命令登录:

docker login 192.168.199.189:5000

4. 提交镜像

(1)执行命令docker pull tomcat,从hub.docker.com下载最新版本的tomcat镜像

docker pull tomcat

(2) 执行命令docker images查看镜像列表

docker images

(3) 镜像添加一个带有私有仓库IP的TAG

docker tag dd6ff929584a 192.168.199.189:5000/tomcat

(4) 登录本地仓库

docker login 192.168.199.189:5000

(5) 提交镜像到本地仓库

docker push 192.168.199.189:5000/tomcat
 

搭建Docker私有仓库&用户密码认证&web可视化界面的更多相关文章

  1. 一步步搭建docker私有仓库并从私有仓库中下载镜像

    一步步搭建docker私有仓库 #下载镜像 docker pull registry#查看镜像 docker images #运行私有仓库,指定端口和数据卷 docker run -d -p : -v ...

  2. 搭建docker私有仓库

    保存镜像的地方成为仓库(registry).目前有2种仓库:公共仓库和私有仓库. 最方便的是使用公共仓库上传和下载镜像,下载不需要注册,上传需要到公共仓库注册.公共仓库网站:https://hub.d ...

  3. windows 环境下搭建docker私有仓库

    windows 环境下搭建docker私有仓库 1.在公用仓库中pull仓库镜像 docker pull regitry 2.启动仓库镜像 //-d意思是后台运行,-p是做端口映射,这里是将本地的50 ...

  4. Centos7基于容器安装运行Docker私有仓库及添加认证

    一.前言 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理 ...

  5. 03搭建docker私有仓库

    搭建docker私仓,可以使用docker官方提供的registry镜像.该镜像目前有2.0,2.3和2.3.1版本.它只与1.6.0以上版本的docker兼容.搭建私仓的步骤如下: 一:无代理.无认 ...

  6. CentOS7搭建Docker私有仓库----Docker

    有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似.目前Docker Registry已经升级到了v2 ...

  7. 手把手教你搭建Docker私有仓库

    章节一:centos7 docker安装和使用_入门教程 章节二:使用docker部署Asp.net core web应用程序 有了前面的基础,接下来的操作就比较简单了.先准备两台虚拟机,两台机器上都 ...

  8. Docker自学纪实(六)搭建docker私有仓库

    docker的镜像仓库分两种:一种是从官方公有仓库拉取:还有就是自己搭建私有仓库.官方的镜像仓库是面对整个应用市场的:私有仓库一般用于公司内部,就是公司项目自身所需的镜像.搭建私有仓库有什么好处?私有 ...

  9. 搭建docker私有仓库,建立k8s集群

    服务器IP角色分布 192.168.5.2 etcd server 192.168.5.2 kubernetes master 192.168.5.3 kubernetes node 192.168. ...

随机推荐

  1. VS.NET中的常用控件和类型的命名规范

    表1  命名规范 VS名称 简写 VS名称 简写 数据类型 Array arr Boolean bln Byte byt Char Chr Date Time dtm Decimal dtm Doub ...

  2. 【数据库】SQL 关系代数

    环境:MySQL ID:MySQL WorkBench 6.3 CE 实现以下有点难度的关系除法. 先给定义: 除运算是同时从关系的水平方向和垂直方向进行运算.给定关系R(X,Y)和S(Y,Z),X. ...

  3. POJ 3438:Look and Say

    Look and Say Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 9196   Accepted: 5566 Desc ...

  4. MySQL--从库启动复制报错1236

    链接:http://blog.csdn.net/yumushui/article/details/42742461 今天在搭建一个MySQL master-slave集群时,执行了change mas ...

  5. 113.Pageinator和Page类常用的属性和方法

    Paginator和Page类: Paginator和Page类都是用来分页的,他们在Django中的路径为django.core.paginator.Pageinator和django.core.p ...

  6. SSM框架和微服务构架和的联系与区别

    spring和springMvc: 1. spring是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(springMvc).业务层(Ioc) ...

  7. TCP协议的学习

    1.关于TCP理解的重点(TCP协议可以理解为就是一段代码) (1).TCP协议工作在传输层,对上服务socket接口,对下调用IP层 (2).TCP协议面向连接,通信前必须先3次握手建立连接关系后才 ...

  8. mqtt+htttp+websocket

    一.介绍 1.参考网址1:WebSocket协议:5分钟从入门到精通 2.参考网址2:WebSocket 教程(阮一峰) 二.应用 1.参考网址1:从 HTTP 到 MQTT:一个移动后端案例概述 2 ...

  9. MQL4编程—值传递和引用传递

    定义 简单的说就是给一个变量或者对象取一个别名(引用和被引用的共享存储单元,要用修饰符&). 引用的用法 在MQL4中通过调试只接受引用作为函数参数的用法,在函数参数传递过程中,有两种传递方式 ...

  10. goweb-会话控制

    会话控制 HTTP 是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不 能区分中两次请求是否由一个客户端发出.这样的设计严重阻碍的 Web 程序的设计. 如:在我们进行网购时,买了一条裤子 ...