Docker私有仓库--自签名方式
为了能集中管理我们创建好的镜像,方便部署服务,我们会创建私有的Docker仓库。通读了一遍官方文档,Docker为了确保安全使用TLS,需要CA认证,认证时间长的要钱啊,免费过期时间太短,还是用自签名比较简单。
准备环境
环境:两台Centos 7 虚拟机
》服务器IP:10.57.220.244 ,作为Docker仓库使用
》客户端IP:10.57.220.220 ,作为客户端来上传或拉取镜像
》域名:lpxxn.com
两台机器上均已安装好Docker 版本为 17.03.0-ce

如果你和我一样没有用真域名,只需要在客户机上修改一下hosts文件

生成自签名证书
在服务器主机上生成自签名证书,创建一个文件夹用于存放证书
mkdir -p certs

生成证书
openssl req -newkey rsa: -nodes -sha256 -keyout certs/lpxxn.com.key -x509 -days -out certs/lpxxn.com.crt
需要注意的是在填写的时候Common Name和你的域名是一至的。

ll certs文件夹就可以看到生成好的两个文件

运行仓库镜像,如果本地没有相应的镜像会从Docker服务器上下载,然后才启动,可以用docker ps命令查看是否已经有窗口在运行。
docker run -d -p : --restart=always --name registry_https -v `pwd`/certs:/home/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/home/certs/lpxxn.com.crt -e REGISTRY_HTTP_TLS_KEY=/home/certs/lpxxn.com.key registry:

你也可以指定本机的目录保存上传好的docker镜像
docker run -d -p : -v `pwd`/dockerregister:/var/lib/registry --restart=always --name registry_https -v `pwd`/certs:/home/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/home/certs/lpxxn.com.crt -e REGISTRY_HTTP_TLS_KEY=/home/certs/lpxxn.com.key registry:
到这里服务器就启动好了,最后一步是把生成好的lpxxn.com.crt复制到客户端,你可以用自己的方式复制, 我用的scp先复制到/home/test目录下,再复制到/etc/pki/ca-trust/source/anchors目录下
scp -r lpxxn.com.crt li@10.57.220.220:/home/test

配置客户端
把服务器端生成的的lpxxn.com.crt复制到客户端服务器的 /etc/pki/ca-trust/source/anchors目录下,ll查看 一下

更新证书,然后重新启动docker 。
update-ca-trust
service docker stop && service docker start

ok.使用curl查看一下仓库
curl https://lpxxn.com:5000/v2/_catalog

可以正常访问了。再使用docker命令上传下载试试
使用docker tag 标记本地的镜像centos:6为 lpxxn.com:5000/centos6:1.0

push到仓库
执行push 命令
docker push lpxxn.com:/centos6:1.0

查看仓库信息
使用curl 查看仓库有哪些镜像和版本
curl https://lpxxn.com:5000/v2/_catalog curl https://lpxxn.com:5000/v2/centos6/tags/list

从仓库拉取镜像
先把本地的镜像删除
docker rmi lpxxn.com:/centos6:1.0 docker rmi centos:
拉取然后run
docker pull lpxxn.com:/centos6:1.0

Docker私有仓库--自签名方式的更多相关文章
- 搭建Docker私有仓库--自签名方式
为了能集中管理我们创建好的镜像,方便部署服务,我们会创建私有的Docker仓库.通读了一遍官方文档,Docker为了确保安全使用TLS,需要CA认证,认证时间长的要钱啊,免费过期时间太短,还是用自签名 ...
- Docker 私有仓库建立(加密和用户验证)
(一)生成证书1.mkdir /certs2.cd /certs 3.生成自签名证书 sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days ...
- 搭建docker私有仓库(https)
1.修改openssl.cnf,支持IP地址方式,HTTPS访问在Redhat7或者Centos系统中,文件所在位置是/etc/pki/tls/openssl.cnf.在其中的[ v3_ca]部分,添 ...
- 03搭建docker私有仓库
搭建docker私仓,可以使用docker官方提供的registry镜像.该镜像目前有2.0,2.3和2.3.1版本.它只与1.6.0以上版本的docker兼容.搭建私仓的步骤如下: 一:无代理.无认 ...
- 2.使用nexus3配置docker私有仓库
1,配置走起 1,创建blob存储 登陆之后,先创建一个用于存储镜像的空间. 定义一个name,下边的内容会自动补全. 然后保存. 注意:实际生产中使用,建议服务器存储500G或以上. 2,创建一个h ...
- 搭建docker私有仓库
保存镜像的地方成为仓库(registry).目前有2种仓库:公共仓库和私有仓库. 最方便的是使用公共仓库上传和下载镜像,下载不需要注册,上传需要到公共仓库注册.公共仓库网站:https://hub.d ...
- docker 私有仓库简易搭建
概要 本地私有仓库 局域网私有仓库 总结 概要 docker hub 使用非常方便,而且上面有大量的镜像可以使用. 但是,每次都远程下载镜像速度非常慢,如果能在本地做一个 docker 的仓库,多人协 ...
- docker 私有仓库 harbor docker-compose
c创建docker私有仓库 docker pull registry:2.1.1 mkdir /opt/registry#mkdir /var/lib/registry docker run -d - ...
- 构建Docker私有仓库
一.Docker私有仓库 上一篇说了如何利用Dockerfile在已有镜像的基础上构建自己的镜像,那么如果需要让镜像在一个团队中使用,就需要一个仓库,有几种方式可以共享私有镜像. 1.将镜像上传至 ...
随机推荐
- php调用js变量
<script> function tuichu(skp){ <?php $ok="skp"; echo "alert($ok)";//实验代 ...
- PHP分页类,支持自定义样式,中间5页
<?php //namespace Component; /** * 2016-3-27 * @author ankang */ class Page { private $ShowPage; ...
- 关于IE6、IE7、IE8实现盒子阴影shadow的几个注意点
通常,我们实现盒阴影都是通过这段代码来实现的 -moz-box-shadow: 3px 3px 4px #000; -webkit-box-shadow: 3px 3px 4px #000; box- ...
- mui中文在线手册及教程文档
http://dev.dcloud.net.cn/mui/ui/index.html#mask http://ask.dcloud.net.cn/question/2403 http://ask.dc ...
- HTML5画布(CANVAS)速查简表
HTML5画布(CANVAS)速查简表 http://www.webhek.com/misc/html5-canvas-cheat-sheet/
- 如何在鼠标hover时改变标注的样式
如何在鼠标hover时改变标注的样式? ---------------- 教程 ----------------------- 首先创建1张地图 //初始化地图对象,加载地图 var map ...
- [CSS3] 学习笔记-CSS入门基本知识
1.CSS概述 CSS指层叠样式表 CSS样式表极大的提高了工作效率 1)CSS基础语法: selector{ propery:value } 例1:h1{color:red;font-size:14 ...
- 基于Ceph快照的异地灾备设计
作者:吴香伟 发表于 2017/02/06 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 喜欢请点击右边打赏,谢谢支持! 引子 技术改变生活. 越来越方便的手机 ...
- 关于C++的const对象
对于const类对象,类指针, 类引用, 只能调用类的const成员函数. 1.const成员函数不允许被修改它所在对象的任何一个成员变量. 2.const成员函数能访问对象的const成员, 而其他 ...
- java一维数组学习
/* * java学习: * 一维数组的使用: 声明语法 DataType[] name 或 DataType name[]. 初始化语法 DataType[] name = new DataType ...