我的笔记本电脑上安装了ubuntu。
我启动了一个私有docker注册表(支持ssl的htpasswd安全),并将其添加到覆盖网络上(因此可以从其他主机/虚拟机访问)
以下是代码(docker-compose.yaml):
version: "3"
services:
registry:
restart: always
image: registry:2
ports:
- 5000:5000
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
REGISTRY_HTTP_TLS_KEY: /certs/domain.key
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
volumes:
- /certs:/certs
- ~/caas_rd/workspace/ci_cd_pipeline/registry_setup:/auth
networks:
- overlaynetwork
networks:
overlaynetwork:
因此,我的注册表正在以下链接中运行(通过dns,我可以在浏览器中进行验证):https://home-thinkpad-t420s:5000/v2/_catalog
现在我在笔记本电脑上安装了“Minikube”。
我在minikube虚拟机上创建了一个文件夹“/etc/docker/certs.d”
https://docs.docker.com/engine/security/certificates/#understanding-配置
我还修改了 /etc/hosts
并通过:sudo systemctl restartdocker.service重启mini kube vm上的docker服务
在此之后,我可以通过“docker登录”在minikube虚拟机上拉取图像
然后我尝试创建一个秘密(在我的笔记本电脑上使用kubectl create-f),定义如下:
apiVersion: "v1"
kind: "Secret"
metadata:
name: "ssl-proxy-secret"
namespace: "default"
data:
proxycert: "LS0..."
proxykey: "LS0t..."
htpasswd: "YWRt..."
并创建了一个pod(在我的笔记本电脑上使用kubectl create-f),定义如下:
apiVersion: v1
kind: Pod
metadata:
name: private-jenkins
spec:
containers:
- name: private-jenkins-container
image: home-thinkpad-t420s:5000/my-jenkins
volumeMounts:
- name: secrets
mountPath: /etc/secrets
volumes:
- name: secrets
secret:
secretName: ssl-proxy-secret
但是当我尝试运行这个pod时,它会抛出错误:
未能拉取图像“home-thinkpad-t420s:5000/my jenkins”:rpc错误:代码=2描述=错误:图像my jenkins not found同步pod时出错,跳过:无法使用ErrImagePull为“private jenkins container”启动“StartContainer”:“rpc错误:代码=2描述=错误:图像my jenkins not found”
如果我能够通过curl成功地在minikube虚拟机中提取图像
你能把那些双引号从秘密的凭证中删除吗。yml文件并尝试再次旋转吊舱?
您需要创建一个分离的kubernetes注册表密码。可以使用此命令:
kubectl create secret docker-registry <secret-name> \
--docker-email=<your-email> --docker-username=<registry-user> \
--docker-password=<registry-password> --docker-server=<registry-server-domain>
之后,您可以更新pod配置,如下所示:
apiVersion: v1
kind: Pod
metadata:
name: private-jenkins
spec:
containers:
- name: private-jenkins-container
image: home-thinkpad-t420s:5000/my-jenkins
imagePullSecrets:
- name: <secret-name>
参考:链接
希望有帮助!
问题内容: 我已经建立了一个4节点kubernetes集群,该集群运行都在CoreOS上运行的多容器Pod。这些图像来自公共和私人存储库。现在,我必须登录到每个节点,并在每次更新图像时手动下拉图像。我希望能够自动将其拉出。 我试过在每台服务器上运行docker登录并将.dockercfg文件放在/ root和/ core中 我也使用.docker / config.json完成了上述操作 我已将密
我正在使用OpenShift版本: 我的docker版本是: 要在我的计算机上启动本地OpenShift群集,我执行了以下步骤:https://github.com/openshift/origin/blob/master/docs/cluster_up_down.md#linux 我想部署一个Redis实例,由于没有默认的Redis模板(有20个默认模板),我从URL将其加载为JSON模板:ht
我已经用自签名证书设置了一个私有docker注册表。 crt和domain.key是使用OpenSSL生成的。 若要从远程主机进行连接, 此外,我还在工作节点中执行了docker注册表步骤中的自签名证书, 给定deployment.yaml文件的imagePullSecrets中的名称。我试图在Kubernetes集群(Calico网络)中创建一个豆荚,但它无法拉图像。 deployment.ya
问题内容: 我在机器上安装了docker,并且在其中安装了docker的minikube上,所以可能我有两个在不同VM上运行的docker实例 我建立一个图像并对其进行标记,然后将其推入本地注册表,并成功将其推入,我也可以从注册表中将其拉出,也可以在运行curl以获取标签列表时得到结果,这就是我所做的 以上所有步骤均正常进行,没有任何问题。 我的问题是当我运行minikube并尝试在其中的本地注册
问题内容: 我正在运行kubeadm alpha版本来设置我的kubernates集群。从kubernates,我试图提取在nexus存储库中托管的docker镜像。每当我尝试创建Pod时,每次都会给出“ ImagePullBackOff”。有人可以帮我吗? 有关详细信息,请参见https://github.com/kubernetes/kubernetes/issues/41536 吊舱定义:
问题内容: 我运行了一个私有Docker注册表,我想从存储库中删除除之外的所有图像。我不想删除整个存储库,仅删除其中的一些图像。该API文档不提一个办法做到这一点,但肯定这是可能的? 问题答案: 当前,您无法将注册表API用于该任务。它仅允许您删除存储库或特定标签。 通常,删除存储库意味着删除与此仓库关联的所有标签。 删除标签意味着删除图像和标签之间的关联。 以上所有都不删除单个图像。它们留在您的