Docker Registry 是Docker官方一个镜像,可以用来储存和分发Docker镜像。目前比较流行的两个镜像私库是Docker Registry ,HarBor 其中HarBor最合适企业级应用,提供良好的WEB界面进行管理。

Docker Registry搭建

本文主要介绍Docker Registry搭建的方式,官网地址:registry - Official Image | Docker Hub

拉取镜像:

docker pull registry

运行镜像:

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

防火墙需要开放5000端口,或者直接关闭防火墙

systemctl status firewalld.service   #查看防火墙状态
systemctl stop firewalld.service #暂停防火墙
systemctl disable firewalld.service #永久关闭防火墙

检查镜像是否运行成功:docker ps,镜像成功之后私库就算搭建成功了。

推送代码

方法一:VS2019发布可以一步直接推送到私库

每次点击发布就会自动推送到私库,相当方便,背后原理和手动推送没有区别,只是VS2019默默地把我们做了工作:创建镜像,给镜像打标签,推送镜像。通过Docker Desktop 工具我们可以查看到本地镜像:

方法二:手动推送

手动推送需要我们先给镜像打标签,然后推送镜像。

docker image tag webapplication4 192.168.3.35:5000/webapplication4:latest
docker push 192.168.3.35:5000/webapplication4:latest

查看己推送的镜像,Docker Registry支持HTTP请求API获取相关数据,最好是搭建WEB可视化界面管理,下文有讲到。

注意事项:docker 默认要求HTTPS连接,如果私库不搭建HTTPS,那么客户端就需要配置docker的配置文件添加信任源。服务器端(即docker私库)不需要配置。

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

Htpasswd

一般情况下Docker Registry是充许自由访问,作为公司或个人私库自然是需要进行安全设置,我们可以通过htpasswd实现登陆限制。

安装htpasswd

yum -y install httpd

在宿主机上创建文件夹来储存htpasswd的账号或密码

mkdir /usr/local/auth

生成密码

htpasswd -Bbn admin 123456 > /usr/local/auth/passwd

需要重启容器,配置htpasswd

docker run
-p 5000:5000
--restart=always
--name registry
-v /usr/local/auth:/auth
-e REGISTRY_AUTH=htpasswd
-e REGISTRY_AUTH_HTPASSWD_REALM=Registry_Realm
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/passwd
-d registry:2

重新请求API接口时,己提示需要认证。

搭建可视化WEB界面

私库可以通过API进行交互,这样交互会很麻烦,提供可视化界面会比较容易管理一些,docker-registry-browser 管理界面提供一些基础功能,简单易用。

dokcer Hub地址:klausmeyer/docker-registry-browser - Docker Image | Docker Hub

gitHub地址:docker-registry-browser/README.md at master · klausmeyer/docker-registry-browser · GitHub

在私库服务器运行镜像:

docker run
--name registry-browser
-p 8080:8080
--restart=always
--link registry
-e DOCKER_REGISTRY_URL=http://registry:5000/v2
-d klausmeyer/docker-registry-browser

注意事项:docker-registry-browser是镜像,当运行docker-registry-browser的时候会新建一套虚拟环境,所以默认配置下docker-registry-browser是管理不到docker私库。需要特别配置两个参数:

--link registry

-e DOCKER_REGISTRY_URL=http://registry:5000/v2

对应的是私库的容器名称和请求API地址,默认启动之后,访问就提示需要账号,密码。

Docker Registry 私库流程大概如此,感兴趣的朋友关注一下~

最新文章

  1. 一张图系列——为什么在DllMain里面创建了线程并Wait会卡死
  2. thinkphp语言包
  3. IIS7.0上传文件限制的解决方法
  4. C#编程总结(十)字符转码
  5. Linux服务器沦陷为肉鸡的全过程实录
  6. Java缓存学习之三:CDN缓存机制
  7. android141 360 安装软件管理
  8. javascript之事件详解2
  9. 画板社交工具开发分享——HTML5 canvas控件、PHP、社交分享学习(一)
  10. 虎记:强大的nth-child(n)伪类选择器玩法
  11. C++输入一个字符串,把其中的字符按照逆序输出的两种方法
  12. WebService之CXF注解之四(测试类)
  13. Java将数据按列写入Excel并设置格式(字体、背景色、自动列宽、对齐方式等)
  14. angular js 初学
  15. C# 打印 长字符串自动换行
  16. python scrapy 爬取西刺代理ip(一基础篇)(ubuntu环境下) -赖大大
  17. jQuery学习(监听DOM加载)
  18. mysql caching_sha2_password异常分析
  19. 让网站不去请求favicon.ico图标
  20. Hadoop如何将TB级大文件的上传性能优化上百倍?

热门文章

  1. jumpserver 2222端口的使用
  2. Nexus OSS 3 搭建并配置使用 Docker & Git LFS 仓库
  3. 重学Java泛型
  4. 30分钟掌握 Webpack
  5. PAT (Basic Level) Practice 1009 说反话 分数 20
  6. TWS耳机蓝牙建连过程_HCI版本
  7. MYSQL-->函数与约束条件
  8. 3.RabbitMQ系列之消费者
  9. 知识图谱顶会论文(ACL-2022) CAKE:用于多视图KGC的可扩展常识感知框架
  10. Unity——滚动的小球