标签: docker-registry

ArtifactoryRegistry(专业版)与 DockerRegistry

我从他们的网站上读到了有关ArtifactoryRegistry(现在称为Artifactory)的信息,似乎AR被描述为比DockerRegistry更适合生产环境。但是,我找不到两者之间的任何比较矩阵。Artifactory 提供了哪些 Docker Registry 没有提供的具体功能?

例如,我读到 Artifactory提供了更细粒度的身份验证和授权机制。但这是否意味着您不能使用 Docker 注册表进行授权?

我对 Artifactory Professional 版本特别感兴趣。

registry artifactory docker-registry

2
推荐指数
1
解决办法
2649
查看次数

如何连接到 docker/engine-api 中的远程套接字?

我想检索远程计算机的所有 docker 映像,因此我使用 docker/engine-api: https: //github.com/docker/engine-api

我使用以下代码成功返回了本地计算机的 docker 映像:

package main

import (
    "fmt"

    "github.com/docker/engine-api/client"
    "github.com/docker/engine-api/types"
    "golang.org/x/net/context"
)

func main() {
    defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"}
    cli, err := client.NewClient("unix:///var/run/docker.sock", "v1.22", nil, defaultHeaders)

    if err != nil {
        panic(err)
    }

    options := types.ContainerListOptions{All: true}
    containers, err := cli.ContainerList(context.Background(), options)
    if err != nil {
        panic(err)
    }

    for _, c := range containers {
        fmt.Println(c.ID)
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在有人知道如何在给定地址、用户名和密码的情况下检索远程计算机的 docker 映像吗

virtualization go docker docker-registry docker-compose

2
推荐指数
1
解决办法
2100
查看次数

kubectl port-forward: "pod does not exist" at the first time running?

Follow this guide, I'm trying to start minikube and forward port at the boot time.

My script:

#!/bin/bash

set -eux

export PATH=/usr/local/bin:$PATH

minikube status || minikube start
minikube ssh 'grep docker.for.mac.localhost /etc/hosts || echo -e "127.0.0.1\tdocker.for.mac.localhost" | sudo tee -a /etc/hosts'
minikube ssh 'test -f wait-for-it.sh || curl -O https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh'
minikube ssh 'chmod +x wait-for-it.sh && ./wait-for-it.sh 127.0.1.1:10250'
POD=$(kubectl get po --namespace kube-system | awk '/kube-registry-v0/ { print $1 }')
kubectl port-forward --namespace kube-system $POD 5000:5000
Run Code Online (Sandbox Code Playgroud)

Everything works fine except …

docker kubernetes docker-registry minikube

2
推荐指数
1
解决办法
3218
查看次数

docker 注册表和 nginx - 实体太大 - client_max_body_size 没有效果

我已经部署docker registryS3作为存储的图像存储。

我的一些图像在GBs. 所以我已经将 nginx 属性设置client_max_body_size5GB. 但它仍然给我这个错误。

error parsing HTTP 413 response body: invalid character '<' looking for beginning of value: "<html>\r\n<head><title>413 Request Entity Too Large</title></head>\r\n<body bgcolor=\"white\">\r\n<center>

413请求实体太大

登记处

upstream registry_upstream{
    server 127.0.0.1:5000;
}

server {
  server_name  registry.domain.com;
  # disable any limits to avoid HTTP 413 for large image uploads
  client_max_body_size 0;
  location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header …
Run Code Online (Sandbox Code Playgroud)

nginx docker docker-registry

2
推荐指数
1
解决办法
4301
查看次数

如何使用私有 docker 注册表创建 docker swarm 服务

我有一个私有的 docker 注册表,当我从中提取图像时一切正常但是当我想启动 docker swarm 服务时:

docker service create --name myredis --network mynetwork --replicas 1 -p 6379:6379 myregistry:8082/redis
Run Code Online (Sandbox Code Playgroud)

,它显示了下一个错误

unable to pin image myregistry:8082/redis to digest: Head http://myregistry:8082/v2/redis/manifests/latest: no basic auth credentials
Run Code Online (Sandbox Code Playgroud)

创建 docker swarm 服务时如何使用本地注册表?

docker swarm docker-registry docker-swarm

2
推荐指数
1
解决办法
6033
查看次数

我可以在 Dockerfile FROM 语句中引用环境变量吗?

我想做的是这样的:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-alpine
# more stuff
Run Code Online (Sandbox Code Playgroud)

但是,这需要在无法访问互联网的隔离的干净构建机器上运行,因此我需要通过本地镜像服务器(例如 Artifactory 或 Nexus 或其他类似的东西)路由它

如果 docker 镜像托管在 docker hub 上(例如来自 ubuntu),那么--registry-mirrors docker配置选项将为我们解决这个问题。
但是因为微软决定不使用 docker hub,所以注册表镜像也不起作用。

经过一番努力,我已经为 mcr.microsoft.com 设置了自定义域镜像,现在我可以执行以下操作:

FROM microsoft-docker-mirror.local.domain/dotnet/core/aspnet:3.0-alpine
# more stuff
Run Code Online (Sandbox Code Playgroud)

这样可行。但是我们有远程工作人员,他们可能不在本地办公室 LAN 上,并且看不到我的本地镜像服务器。我现在想做的是根据环境改变它。例如

ENV MICROSOFT_DOCKER_REPO mcr.microsoft.com
FROM ${MICROSOFT_DOCKER_REPO}/dotnet/core/aspnet:3.0-alpine
Run Code Online (Sandbox Code Playgroud)

我的独立构建机器将设置MICROSOFT_DOCKER_REPO环境变量,其他人的机器将使用默认值mcr.microsoft.com

反正。将行添加ENV到 dockerfile 会导致 docker 抛出此错误:

Error response from daemon: No build stage in current context
Run Code Online (Sandbox Code Playgroud)

似乎有很多参考文献指出 FROM 行必须是文件中的第一行,甚至在任何注释之前......我如何在 FROM 语句中引用环境变量?或者,如何使注册表镜像适用于 docker hub 之外的事物?

谢谢!

docker docker-registry docker-registry-mirror

2
推荐指数
1
解决办法
1063
查看次数

docker build 给出空间不足的错误

docker build突然出现这个错误...

我们尝试了一些方法,但都没有使错误消失:

  1. docker登录到不同的注册表

  2. docker rmi, docker rm

  3. 其他人在他们的本地机器上进行 docker 构建。

日志:

One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:
     1. Contact the upstream for the repository and get them to fix the problem.
     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most …
Run Code Online (Sandbox Code Playgroud)

yum docker docker-registry

2
推荐指数
1
解决办法
2480
查看次数

无法从 Docker 本地不安全注册表中提取映像:http:服务器向 HTTPS 客户端提供 HTTP 响应

当我尝试使用同一服务器(主节点)上的私有 Docker 注册表中的图像在 Kubernetes 中部署应用程序时,收到以下错误:

无法拉取映像“0.0.0.0:5000/continuous-delivery-tutorial:5ec98331a69ec5e6f818583d4506d361ff4de89b-2020-02-12-14-37-03”:rpc des 错误:来自https:// cda 的错误代码 = 未知响应 0.0.0.0:5000/v2/ : http: 服务器向 HTTPS 客户端提供 HTTP 响应

当我打印时,docker system info我可以看到我的注册表是不安全的注册表:

在此处输入图片说明

我通过以下命令运行我的注册表:

docker run -d -p 5000:5000 --restart=always --name registry -v $PWD/docker_reg_certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何建议

https docker kubernetes docker-registry

2
推荐指数
1
解决办法
3071
查看次数

有没有办法防止覆盖 Azure 容器注册表中的现有标记/图像?

我在 Azure Devops 中有一个管道,它有一个将 Docker 映像推送到 Azure 容器注册表的任务。我想知道是否有办法防止此任务覆盖任何现有的 Docker 标签/图像。

azure docker docker-registry azure-devops azure-container-registry

2
推荐指数
1
解决办法
753
查看次数

无法从 Docker 代理/镜像/缓存注册表中删除映像

registry:2通过 docker-compose运行镜像1.27.4,docker 本身位于19.03.13.

注册表被配置为“拉取缓存”,也被某些人称为“代理”或“镜像”。设置非常基本,遵循官方文档:

version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
  delete:
    enabled: true
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3
proxy:
  remoteurl: https://registry-1.docker.io
Run Code Online (Sandbox Code Playgroud)

当使用标准程序通过 API 删除此注册表上的图像时...

  1. 查找标签名称

    export HEADER="Accept: application/vnd.docker.distribution.manifest.v2+json"
    curl -s -H $HEADER https://<HOST>/v2/<CATALOG>/tags/list
    
    Run Code Online (Sandbox Code Playgroud)
  2. 找到对应的SHA

    curl -sI -k -H $HEADER https://<HOST>/v2/<CATALOG>/manifests/<TAG> 
    
    Run Code Online (Sandbox Code Playgroud)
  3. 通过 SHA 删除

    curl -H $HEADER -X DELETE https://<HOST>/v2/<CATALOG>/manifests/<SHA>
    
    Run Code Online (Sandbox Code Playgroud)

...最后一个命令我得到 404:

404 page not found
Run Code Online (Sandbox Code Playgroud)

proxy当我对注册表配置中注释掉的位执行相同操作时,它可以工作。 …

docker docker-registry docker-proxy

2
推荐指数
1
解决办法
1098
查看次数