docker私有仓库搭建,证书认证,鉴权管理

本文介绍了如何在本地搭建Docker私有仓库,包括使用命令行创建私有仓库、解决HTTP与HTTPS访问问题、通过自签名证书实现Secure Registry,以及添加鉴权管理,确保安全的镜像推送与拉取。详细步骤涵盖从生成证书到配置客户端,以及添加用户权限,适合团队内部使用。
摘要由CSDN通过智能技术生成

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。


我们知道docker镜像可以托管到dockerhub中,跟代码库托管到github是一个道理。但如果我们不想把docker镜像公开放到dockerhub中,只想在部门或团队内部共享docker镜像,能不能像gitlab一样在搭建私有的仓库呢?答案是肯定的,docker也支持将镜像存到私有仓库。


这篇文章默认你的机器上已经安装了docker,并有了docker的一些基础知识,本文主要讲私有仓库搭建,证书认证,鉴权管理等内容,关于docker的内容请参考其他文章。


如果Docker还不会,可以在公众号回复“docker”,会有docker视频教程提供给你进行学习。


开始搭建私有仓库


假设我们有两台机器,一台是Client是平时工作用的,IP是192.168.1.100,一台是Server安装私有仓库的,IP是192.168.1.200。


我们在Server机器上搭建私有仓库,一条命令即可,非常简单

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


--name 用来设置容器的名字

-d 后台启动

-p 5000:5000 指定宿主机5000端口映射容器5000端口,

--restart=always Docker容器的重启策略


Docker容器的重启策略是面向生产环境的一个启动策略


 no,默认策略,在容器退出时不重启容器

    on-failure,在容器非正常退出时(退出状态非0),才会重启容器

    on-failure:3,在容器非正常退出时重启容器,最多重启3次

    always,在容器退出时总是重启容器

    unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器


docker run的退出状态码如下:


0,表示正常退出

非0,表示异常退出(退出状态码采用chroot标准)

    125,Docker守护进程本身的错误

    126,容器启动后,要执行的默认命令无法调用

    127,容器启动后,要执行的默认命令不存在

    其他命令状态码,容器启动后正常执行命令,退出命令时该命令的返回状态码作为容器的退出状态码。

    

这条命令执行完成以后,如果是第一次执行,docker会从dockerhub中去下载这个registry镜像到本地。然后运行生成容器。

 640?wx_fmt=png


我们执行docker ps 看一下容器是否启动成功。

$ docker ps


640?wx_fmt=png


我们可以看到有一个name为docker-registry的容器已经启动成功。这就是我们私有仓库了。怎么样,简单吧。继续下一步,把客户端的镜像提交到服务端的仓库里。

提交镜像


我们现在切换到工作机器上进行提交镜像,也就是Client端,执行命令docker pull tomcat,从hub.docker.com下载最新版本的tomcat镜像.


$ docker pull tomcat


640?wx_fmt=png


执行命令docker images查看镜像列表。


$ docker images


640?wx_fmt=png


这个镜像的ID是dd6ff929584a,下面我们给这个镜像添加一个带有私有仓库IP的TAG,这样才能成功推送到私有仓库:


$ docker tag dd6ff929584a 192.168.1.200:5000/tomcat


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值