当前位置: 首页 > news >正文

Docker,Containerd配置私有Harbor仓库和Notary服务器

Docker 配置 Harbor

修改 Docker 配置

Linux 虚拟机中可以这么配置:

# 由于docker默认不允许使用非https方式推送镜像,所以在需要pull镜像的服务器配置访问地址
vim /etc/docker/daemon.json
#添加如下内容(客户端访问的网址):"insecure-registries" :["10.211.55.2:80"]
​
# 重启docker
systemctl restart docker
# 重启harbor容器,要在harbor目录下操作
docker-compose stop
docker-compose up -d

Mac 上直接在 Docker Desktop 配置:
image.png

推送镜像(以官方 nginx 镜像为例)

  1. 准备工作:登陆 harbor,打标签
# docker登陆harbor
docker login 10.211.55.2:80 -u admin
# 给nginx镜像打一个标签
# 格式: docker tag 镜像名:版本 your-ip:端口/项目名称/新的镜像名:版本
docker tag nginx:latest 10.211.55.2:80/library/nginx:latest

结果如下:

➜ harbor docker images
REPOSITORY                       TAG       IMAGE ID       CREATED       SIZE
10.211.55.2:80/library/nginx   latest    47ef8710c9f5   3 weeks ago   198MB
nginx                            latest    47ef8710c9f5   3 weeks ago   198MB
  1. 开始推送
➜ harbor docker push 10.211.55.2.48:80/library/nginx:latest
The push refers to repository [10.211.55.2:80/library/nginx]
be61b0da9648: Pushed
58d58d2ade95: Pushed
beb3bb225b88: Pushed
bdc4a6d15284: Pushed
4b950e3c58cf: Pushed
e0ed4995377a: Pushed
f0f023a63482: Pushed
latest: digest: sha256:148cb3109165d936620429e68a78b0880009148826cc0900c5de1d04f5694061 size: 1778

image.png

Docker 配置 Notary

  1. 创建目录存放 docker 连接 notary 服务端的证书: mkdir -p ~/.docker/tls/<notary-server ip>:<ntotary-server port>
  2. 把之前用 openssl 生成的 .crt 文件移动到上一步创建的目录,并且改名为 root-ca.crt
  3. 打开 DCT 开关: export DOCKER_CONTENT_TRUST=1
  4. 设置私有 Notary Server 地址: export DOCKER_CONTENT_TRUST_SERVER="https://10.211.55.2:4443"
  5. 推送镜像,第一次推送会创建密钥,存储在 ~/.docker/trust 目录下

image.png

Containerd 配置 Harbor

打开 /etc/containerd/config.toml 文件,找到 plugins.'io.containerd.cri.v1.images'.registry 配置项,添加 config_path 配置

[plugins.'io.containerd.cri.v1.images'.registry]config_path = '/etc/containerd/certs.d'

不同版本插件名称不一样,可参考这篇博客末尾提到的内容。

创建 /etc/containerd/certs.d 目录,添加 hosts.toml 文件

# 10.211.55.2:80要改成自己harbor的IP和端口
sudo mkdir -p /etc/containerd/certs.d/10.211.55.2:80
cd /etc/containerd/certs.d/10.211.55.2:80
# 创建hosts.toml
sudo touch hosts.toml

hosts.toml 的文件内容如下(注意改成自己的 IP 和端口,以及此处采用的是 http):

server = "http://10.211.55.2:80"[host."http://10.211.55.2:80"]username = "admin"password = "Harbor12345"capabilities = ["pull", "resolve", "push"]skip_verify = true[host."http://10.211.55.2:80".header]authorization = "Basic YWRtaW46SGFyYm9yMTIzNDU="

重启 containerd

sudo systemctl restart containerd

拉取:

sudo ctr image pull --hosts-dir "/etc/containerd/certs.d" 10.211.55.2:80/library/nginx:latest
http://www.hskmm.com/?act=detail&tid=312

相关文章:

  • Ubuntu安装notary
  • Ubuntu安装containerd
  • 你的错误处理一团糟-是时候修复它了-️
  • TRVCOST - Travelling cost 题解
  • 我重新制作动画系统的思路
  • 第一次作业:自我介绍+软工5问
  • 第一篇练习博客
  • 原型设计实用干货!3款热门AI生成原型图软件横向测评
  • Python Flask框架入门_3.通过token认证验证API的访问权限(数据库版本)
  • 港科 Tower A 宿舍凝水之谜
  • Transformer 模型(能理解“句子顺序”和“上下文”的神经网络架构)
  • 题解:P3546 [POI 2012] PRE-Prefixuffix
  • 自然语言处理(NLP)发展脉络
  • 错误报警:“该 CPU 或当前的库版本不支持数据类型”
  • redis各种数据类型
  • 关于 cnpm 的安装
  • 剖析“YOLO”哈希构造的安全隐患与正确替代方案
  • Charles实战秘籍:弱网模拟、Map Local/Remote、HTTPS抓包详解
  • BOE(京东方)“照亮成长路”公益项目走进富平县 科技赋能教育树立可持续发展新标杆
  • 9月23日周二《AI+企业IP获客联盟峰会》,相约东莞厚街富盈酒店
  • 第一次作业 自我介绍+软工5问
  • 深度学习调参新思路:Hyperband早停机制提升搜索效率
  • K8S Ingress 和 Service的作用?
  • Nginx 配置详解:从基础到进阶
  • Nginx 基础
  • 零成本搭建企业系统:五款免费低代码平台推荐
  • 软件工程第一次作业-自我介绍
  • 通过pip的配置文件,来永久设置国内源‌
  • 软工第一次作业
  • .NET 单文件程序详解:从原理到实践 - C#混淆加密大师解包打包单文件程序