什么是docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

再具体的请自行百度~

命令是红字,配置是绿字,注释和其他为黑色字体。现在让我们来安装吧

服务器主机名及IP地址:

192.168.110.92 docker-registry

192.168.110.22 docker-gitlab

系统版本:

CentOS Linux release 7.2.1511 (Core)

docker版本:

Docker version 1.12.6, build c4618fb/1.12.6

docker仓库版本:

registry-2.4.1

docker认证版本:

docker_auth:1

基础优化~略

关闭selinux:
sed -i s#'SELINUX=enforcing'#'SELINUX=disabled'#g /etc/selinux/config
setenforce 0

关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

安装源:

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

安装并启动docker:

yum install docker docker-registry -y

systemctl enable docker

systemctl start docker

私有镜像库和认证搭建:

下载镜像:

docker pull registry

docker pull docker_auth:1

打标记:

docker tag registry  192.168.110.92:5000/registry:2.4.1

docker tag docker_auth:1  192.168.110.92:5000/docker_auth

修改docker文件 加一行--insecure-registry 192.168.110.92:5000

vim /etc/sysconfig/docker

# /etc/sysconfig/docker

# Modify these options if you want to change the way the docker daemon runs

OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry 192.168.110.92:5000'

if [ -z "${DOCKER_CERT_PATH}" ]; then

DOCKER_CERT_PATH=/etc/docker

fi

创建目录并进入:

mkidr /data/auth_server/ssl/ -p                       ##用于存放证书

mkidr /data/auth_server/config/ -p                    ##配置文件

cd /data/auth_server/ssl/

证书生成(server.key,server.pem和server.crt):

openssl genrsa -out server.key 2048

openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 3650 -out server.pem

cat server.pem | tee -a server.crt

拷贝:

scp server.crt 192.168.110.22:/etc/docker/certs.d/   ###scp 到其他服务器用于测试从内部仓库下载

现在创建配置文件:

cd /data/auth_server/config

vi auth_config.yml

server:

addr: ":5001"

certificate: "/ssl/server.pem"

key: "/ssl/server.key"

token:

issuer: "Auth Service"  # Must match issuer in the Registry config.

expiration: 900

users:

# Password is specified as a BCrypt hash. Use htpasswd -B to generate.

"admin":

password: "$2y$05$LO.vzwpWC5LZGqThvEfznu8qhb5SGqvBSWY1J3yZ4AxtMRZ3kN5jC"                     #badmin

"test":

password: "123"

acl:

- match: {account: "admin"}

actions: ["*"]

comment: "Admin has full access to everything."

- match: {account: ""}

actions: ["pull"]

comment: "User \"user\" can pull stuff."

回到家目录创建docker-compose配置文件
cd && vi docker-compose.yml

dockerauth:

image: cesanta/docker_auth:1

ports:

- "5001:5001"

volumes:

- /data/auth_server/config:/config:ro

- /var/log/docker_auth:/logs

- /data/auth_server/ssl:/ssl

command: /config/auth_config.yml

restart: always

registry:

image: registry:2.4.1

ports:

- "5000:5000"

volumes:

- /data/auth_server/ssl:/ssl

- /data/docker_registry/data:/var/lib/registry

- /data/auth_server/config:/auth

- /data/auth_server/ssl:/certs

restart: always

environment:

- REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt

- REGISTRY_HTTP_TLS_KEY=/certs/server.key

- REGISTRY_AUTH=token

- REGISTRY_AUTH_TOKEN_REALM=https://192.168.110.92:5001/auth ###本机ip

- REGISTRY_AUTH_TOKEN_SERVICE="Docker registry"

- REGISTRY_AUTH_TOKEN_ISSUER="Auth Service"

- REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE=/certs/server.pem

启动并查看:

docker-compose up -d  #-d后台启动

docker-compose ps

Name                     Command               State           Ports

-----------------------------------------------------------------------------------

root_dockerauth_1   /docker_auth/auth_server / ...   Up      0.0.0.0:5001->5001/tcp

root_registry_1     /bin/registry serve /etc/d ...   Up      0.0.0.0:5000->5000/tcp

上传打完包的镜像到私有仓库:

for n in `docker images |grep 192|awk '{print $1":"$2}'` ;do docker push $n;done

验证镜像是否在镜像库(没有404就行):

for YZ in `docker images|awk -F "[/ ]+" '{print $2}'|grep -v TAG`;do curl -v -X GET http://192.168.110.92:5000/v2/$YZ/tags/list ;done

测试:

192.168.110.22服务器执行:

docker login 192.168.110.92:5000

账号: admin      #auth_config.yml 配置的

密码: badmin    #auth_config.yml配置的

Login Succeeded        ##说明成功

docker pull 192.168.110.92:5000/docker_auth        #不出意外的话应该是飞快的速度

网上查资料+同事帮忙+自我实践,才弄出来,有问题及时联系我~

docker私有仓库搭建及认证的更多相关文章

  1. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  2. CentOS7 Docker私有仓库搭建及删除镜像 【转】

    文章来源:centos7 Docker私有仓库搭建及删除镜像 如果不想用私有镜像库,你可以用docker的库 https://hub.docker.com 环境准备 环境:两个装有Docker 17. ...

  3. Docker学习笔记 — Docker私有仓库搭建【转载】

    标签: Docker 2015-03-10 21:08 24190人阅读 评论(0) 收藏 举报  分类: Docker(26)    目录(?)[+]   和Mavan的管理一样,Dockers不仅 ...

  4. docker私有仓库搭建(ubuntu 14.04和centos7)

    最近是在做一个关于docker云化的项目,马上就要开始实战.下午先做了一个私有仓库搭建的实验,先大概做个笔记,有兴趣的蛮看一下吧. 先在所有机子上都安装上docker,我的是两台ubuntu,分别是1 ...

  5. docker私有仓库搭建和资源限制

    Docker 私有仓库的搭建 docker 私有仓库默认只支持https协议的访问  不支持http协议 如果需要允许通过http协议访问 必须手动修改配置文件 docker官方默认提供的仓库  提供 ...

  6. centos7 docker私有仓库搭建

    习Docker的过程中Docker的私有仓库一直没能成功,就是因为CentOS 6.x和CentOS 7默认引入了支持https认证,每次在push和pull的时候都会报错,今天是周末,利用一天的时间 ...

  7. Registry私有仓库搭建及认证

    本节内容: Registry相关概念 Registry V1和V2 安装Docker 搭建本地registry v2 搭建外部可访问的Registry 添加认证 更高级的认证 registry web ...

  8. CentOS环境下Docker私有仓库搭建

    本文讲述如何搭建docker私有仓库. 有了docker hub,为什么还要搭建docker私有仓库? 1.性能考虑:docker hub的访问要通过互联网,性能太低. 2.安全性:更多的时候,镜像不 ...

  9. Docker私有仓库搭建与界面化管理

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

随机推荐

  1. 如何在Mirth Connect中创建和调用自定义Java代码

    0-前言 本文章将向您展示如何创建自定义Java类,将其编译/打包到JAR中,将其包含在Mirth Connect在,并在JavaScript中调用它,您可以从任何JavaScript上下文调用自定义 ...

  2. lucene学习笔记(四)lucene分词详解

    分词器的核心类 Analyzer SimpleAnalyzer StopAnalyzer WhitespaceAnalyzer StandardAnalyzer TokenStream 分词器做好处理 ...

  3. 原生JS实现随机点名项目

    核心思想 随机产生规定范围内的整数,然后再产生相同范围内的整数,两者相同时,则暂停. 所用知识 Math.random() * num: 产生从0到num的随机数 Math.floor(): 向下取整 ...

  4. .net core 2.1-----Sql Server数据库初体验

    刚开始接触asp.net core,在学习的过程中遇到了一些小问题,在这里记录一下! 在我们项目的开发过程中,肯定会和数据库打交道,所以我尝试了一下用asp.net core链接数据库,并读取表中的数 ...

  5. 安装php环境

    安装xampp 安装zend studio 安装Composer-Setup 安装Z2 ZendFramework-2.4.9 I can install successfully using the ...

  6. SharePoint Adventures : Using Claims with Reporting Services

    Cannot convert claims identity to a windows token.  This may be due to user not logging in using win ...

  7. win32拖拽编程

    本文由作者邹启文授权网易云社区发布. 在邮箱大师PC版中,我们需要实现一个功能:账号和邮件夹拖拽排序. 准备 封装win32 API.我们使用到的API有, ImageList_Create.Imag ...

  8. Impala源码之资源管理与资源隔离

    本文由  网易云发布. 前言 Impala是一个MPP架构的查询系统,为了做到平台化服务,首先需要考虑就是如何做到资源隔离,多个产品之间尽可能小的甚至毫无影响.对于这种需求,最好的隔离方案无疑是物理机 ...

  9. iOS 模拟器网络设置

    在 iOS Simulator 下,点上面菜单栏最左面的苹果标志,第三项 网络设置,然后先最后面一项,网络设置. 然后在网络设置界面下可以开启或关闭网络.

  10. leetcode 56 合并区间 JAVA

    题目: 给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [ ...