我找不到如何在私人注册表中管理图像.我可以推或拉图像因为我知道id但是如何获得推送图像列表?
例如,想要在其组织的私人注册表下查看可用图像的人.她怎么办?
除非我弄错了,否则我找不到API或Web UI来发现注册表内容,例如index.docker.io对公共注册表的处理.
是否有任何开源项目来管理这个?
谢谢.
请帮助我理解docker compose中'image'和'build'之间的区别
直到最近这工作正常
docker run --entrypoint htpasswd registry:2 -Bbn myuser mypwd > /my/registry2/reg/hub/auth/htpasswd
Run Code Online (Sandbox Code Playgroud)
现在它出错了
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"htpasswd\": executable file not found in $PATH": unknown.
Run Code Online (Sandbox Code Playgroud)
这是在带有 docker 的 Ubuntu 18.04 和 20.04 上
docker version
Client: Docker Engine - Community
Version: 19.03.11
API version: 1.40
Go version: go1.13.10
Git commit: 42e35e61f3
Built: Mon Jun 1 09:12:22 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.11
API …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Minikube,Docker Registry和演示节点项目创建本地Kubernetes部署.
我做的第一件事是安装Docker v 1.12.3,然后安装Minikube v0.12.2.
然后我通过运行此命令创建了一个Docker Registry容器(通过本教程,只运行下面的第一个命令)
docker run -d -p 5000:5000 --name registry registry:2
Run Code Online (Sandbox Code Playgroud)
接下来,我运行了这个minikube命令来创建一个本地kubernetes集群:
minikube start --vm-driver="virtualbox" --insecure-registry="0.0.0.0:5000"
Run Code Online (Sandbox Code Playgroud)
我的项目结构如下所示:
.
??? Dockerfile
??? server.js
Run Code Online (Sandbox Code Playgroud)
我的Dockerfile看起来像这样:
FROM node:7.1.0
EXPOSE 8080
COPY server.js .
CMD node server.js
Run Code Online (Sandbox Code Playgroud)
然后我构建了自己的docker镜像并将其推送到我的私有存储库:
docker build -t hello-node .
docker tag hello-node localhost:5000/hello-node
docker push localhost:5000/hello-node
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用此命令运行部署:
kubectl run hello-node --image=localhost:5000/hello-node --port=8888
Run Code Online (Sandbox Code Playgroud)
但后来我明白了:
sudo kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default hello-node-3745105022-gzs5a 0/1 ErrImagePull 0 11m
kube-system kube-addon-manager-minikube 1/1 …Run Code Online (Sandbox Code Playgroud) 我需要在Docker中设置我自己的私有注册表,通常保留所有内部Docker镜像.
为了使这更容易,我希望在内部设置我的Docker图像被调用project/component,就像你从https://index.docker.io/提取的普通Docker图像一样.
我确信,我永远不会从index.docker.io中获取这种格式的图像,所有这些图像都来自我们的内部索引器.即使是格式的图像imagename,centos也会从我们的内部存储库中提取出来.
那么,有没有办法让我更改默认索引器?或者至少将我的私有索引器从端口5000更改为默认尝试的东西; 即,从中获取图像private_indexer.internal/repo_name而不是private_indexer.internal:5000/repo_name.
将index.docker.io放在我们自己的dns中指向我们的内部ip是最好的解决方案吗?
TL; DR基本上,我正在寻找:
docker push myimage ssh://myvps01.vpsprovider.net/
Run Code Online (Sandbox Code Playgroud)
我没有理解整个Docker Hub/Registry事件的基本原理.我知道我可以运行私有注册表,但为此我必须设置实际运行服务器的基础结构.
我偷偷摸摸了Docker的内部工作(至少是文件系统),看起来Docker图像层只是一堆tarball,或多或少,有一些精心设计的文件命名.我天真地认为用一个简单的Python脚本来做分布式推/拉是不可能的,但当然我没有尝试,所以这就是我问这个问题的原因.
有没有任何技术原因为什么Docker不能像Git或Mercurial一样进行分布式(无服务器)推/拉?
我认为这将是一个巨大的帮助,因为我可以将我在笔记本电脑上构建的图像直接推送到应用服务器上,而不是首先推送到某个地方的repo服务器然后从应用服务器拉出来.或者我可能误解了这个概念,而且注册表是我绝对需要的一个非常重要的功能?
编辑一些有希望解释我为什么要这样做的上下文,请考虑以下场景:
目前最好的解决方案是使用Docker机器指向VPS服务器并重建它,但它减慢了部署,因为我每次都必须从源构建容器.
Gitlab提供了一个.gitlab-ci.yml模板,用于构建和发布图像到自己的注册表(单击一个项目中的"新文件",选择.gitlab-ci.yml和docker).该文件看起来像这样,它开箱即用:)
# This file is a template, and might need editing before it works on your project.
# Official docker image.
image: docker:latest
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
build-master:
stage: build
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE" .
- docker push "$CI_REGISTRY_IMAGE"
only:
- master
build:
stage: build
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
except:
- master
Run Code Online (Sandbox Code Playgroud)
但默认情况下,这将发布到gitlab的注册表.我们怎样才能发布到docker hub …
嗨,我正在努力 docker push
[docker-simple-httpserver]# docker push myregistry/simplehttpserver:latest
The push refers to a repository [myregistry/simplehttpserver] (len: 1)
Sending image list
FATA[0000] Error: Status 403 trying to push repository simplehttpserver: "{\"error\": \"Unauthorized updating repository images\"}"
Run Code Online (Sandbox Code Playgroud)
是有我的方式来指定username,并password在docker push命令?
我试图在私有docker注册表上部署带有图像的docker配置.
现在,每次执行时docker login registry.example.com,都会收到以下错误消息:
error getting credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`
Run Code Online (Sandbox Code Playgroud)
我找到的非macos用户的唯一解决方案是先运行export $(dbus-launch),但这并没有改变任何东西.
我正在运行Ubuntu Server并尝试使用Ubuntu Docker软件包和Docker-CE软件包.
如何在没有X11会话的情况下登录?