标签: docker-registry

如何运行或使用多个注册表镜像?

我知道如何运行注册表镜像

docker run -p 5000:5000 \
    -e STANDALONE=false \
    -e MIRROR_SOURCE=https://registry-1.docker.io \
    -e MIRROR_SOURCE_INDEX=https://index.docker.io \
    registry
Run Code Online (Sandbox Code Playgroud)

以及如何使用它

docker --registry-mirror=http://10.0.0.2:5000 -d
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能使用多个注册表镜像.

这就是我需要的:

所以我必须制作两个注册表镜像和一个私有注册表.我想docker run registry镜像第一和第二个注册表,还有一个docker run registry持有我的私人注册表.客户端将使用其中三个注册表.

我不知道如何做到这一点,我认为这是一个常见的用例,请帮助,谢谢.

linux docker kubernetes dockerhub docker-registry

6
推荐指数
1
解决办法
1010
查看次数

如何将机密数据传递给容器

我的 Tomcat 容器需要必须受到良好保护的数据,即用于数据库访问的密码以及用于单点登录到其他系统的证书和密钥

我已经看到一些使用-e-env-file将秘密数据传递给容器的建议,但这可以通过 docker inspect 发现(-env-file也在docker inspect 中显示文件的所有属性)。

另一种方法是将带有机密的数据容器链接到服务容器,但我不喜欢在我的注册表中包含此数据容器的概念(可供更广泛的人访问)。我知道我可以设置一个私有注册表,但是我需要不同的注册表来进行测试和生产,而且每个可以访问生产注册表的人仍然可以访问秘密数据。

我正在考虑使用包含机密数据的目录设置我的服务器并将机密数据安装到我的容器中。这对于具有不同秘密的测试和生产服务器非常有用。但它创建了容器对我的特定服务器的依赖。

所以我的问题是:您如何处理秘密数据,该问题的最佳解决方案是什么?

security docker docker-registry docker-compose

6
推荐指数
1
解决办法
3172
查看次数

通过 HTTP API 在 Docker hub 上列出 Docker 镜像的标签

我想通过它的HTTP接口列出一个Docker镜像官方Docker hub的标签,但我有点困惑。似乎有两个版本:

我设法通过向此端点发送 GET 请求https://index.docker.io/v1/repositories/{my-namespace}/{my-repository}/tags以及基本身份验证凭据来获取它们。

我不确定其中是否有一个正确的,但我应该使用哪个?

docker dockerhub docker-registry

6
推荐指数
2
解决办法
6916
查看次数

Docker 堆栈部署滚动更新卷问题

我正在为生产 PHP-FPM/Nginx 应用程序运行 docker,我想使用 docker-stack.yml 并部署到 swarm 集群。这是我的文件:

version: "3"
services:

app:
  image: <MYREGISTRY>/app
volumes:
   - app-data:/var/www/app
deploy:
  mode: global

php:
  image: <MYREGISTRY>/php
volumes:
   - app-data:/var/www/app
deploy:
  replicas: 2

nginx:
  image: <MYREGISTRY>/nginx
    depends_on:
      - php
  volumes:
    - app-data:/var/www/app
  deploy:
    replicas: 2
  ports:
    - "80:80"

volumes:
 app-data:
Run Code Online (Sandbox Code Playgroud)

我的代码位于app带有来自我的注册表的图像的容器中。

我想更新我的代码,docker service update --image <MYREGISTRY>/app:latest但它不起作用代码没有改变。我猜它使用本地卷app-data代替。

新容器数据不覆盖卷数据是否正常?

docker docker-registry docker-compose docker-swarm

6
推荐指数
1
解决办法
1734
查看次数

docker push,如何查看与注册表的详细交互

我正在将映像推送到私有注册表,我想查看有关与该注册表交互的详细信息。我试过 docker -D、--debug,但没有显示任何细节。

/ # docker -D push registry.company.com:8443/hello-world:test
The push refers to a repository [registry.company.com:8443/hello-world]
45761469c965: Layer already exists
test: digest: sha256:9fa82f24cbb11b6b80d5c88e0e10c3306707d97ff862a3018f22f9b49cef303a size: 524
Run Code Online (Sandbox Code Playgroud)

如何显示有关与我的私有注册表交互的 docker 客户端的详细信息?

docker docker-registry

6
推荐指数
1
解决办法
9773
查看次数

Docker 无法在代理 TLS 握手超时后提取图像

我在 CentOS 7 上安装了最新的 Docker 版本 18.06.0。我的服务器位于公司网络中,因此使用代理服务器访问注册表。我已根据 docker 文档添加了代理设置。但最终在部分工作中添加代理设置。即现在 docker 在运行之前使用代理来拉取图像。

但现在它无法给出以下错误:

$ sudo docker run hello-world
Unable to find image ‘hello-world:latest’ locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: net/http: TLS handshake timeout.
Run Code Online (Sandbox Code Playgroud)

此外,登录失败:

$ sudo docker login --username=XXXX
Password:
Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: EOF
Run Code Online (Sandbox Code Playgroud)

我的代理速度很快。当我使用 wget 或 curl 从互联网下载任何东西时,我看到 90 到 100Mbps 的速度。我机器上的其他应用程序实用程序(例如 yum)正在完美地使用此代理,并且运行良好。现在不知道为什么只有Docker下载镜像有问题。

安装和配置的详细信息如下:

版本:

$ sudo docker version
Client:
Version: 18.06.0-ce
API version: 1.38
Go version: go1.10.3
Git commit: 0ffa825 …
Run Code Online (Sandbox Code Playgroud)

ssl proxy docker docker-registry docker-pull

6
推荐指数
2
解决办法
2万
查看次数

如何在垃圾收集之前恢复私有 docker 注册表中已删除的 docker 镜像标签?

需要从私有 Docker 注册表中恢复一些已删除的图像,有什么建议吗?层应该还在,垃圾收集还没有运行,有没有办法逆转删除过程?

如何从私有 docker 注册表中删除图像?

Docker Registry 2.0 - 如何删除未使用的图像?

docker docker-registry

6
推荐指数
0
解决办法
262
查看次数

microk8s 拉取镜像,卡在 ContainerCreating 状态

如在所描述的文档(基于)。

我在 Ubuntu 上作为主机操作系统。

docker --version
Run Code Online (Sandbox Code Playgroud)

Docker 版本 18.09.6,构建 481bc77

microk8s 1.14/beta
Run Code Online (Sandbox Code Playgroud)

启用本地注册表microk2s

microk8s.enable registry
Run Code Online (Sandbox Code Playgroud)

检查:

watch microk8s.kubectl get all --all-namespaces
Run Code Online (Sandbox Code Playgroud)

容器注册表 pod/registry-577986746b-v8xqc 1/1 运行 0 36m

然后:

编辑:

sudo vim /etc/docker/daemon.json
Run Code Online (Sandbox Code Playgroud)

添加此内容:

{
  "insecure-registries" : ["127.0.0.1:32000"]
}
Run Code Online (Sandbox Code Playgroud)

重新开始:

sudo systemctl restart docker
Run Code Online (Sandbox Code Playgroud)

仔细检查,看看是否应用了不安全:

docker info | grep -A 2 Insecure
Run Code Online (Sandbox Code Playgroud)
Insecure Registries:
 127.0.0.1:32000
 127.0.0.0/8
WARNING: No swap limit support
Run Code Online (Sandbox Code Playgroud)

标签:

docker tag my-registry/my-services/my-service:0.0.1-SNAPSHOT 127.0.0.1:32000/my-service
Run Code Online (Sandbox Code Playgroud)

检查:

docker images
Run Code Online (Sandbox Code Playgroud)

127.0.0.1:32000/my-service 最新 e68f8a7e4675 19 小时前 540MB …

docker kubernetes docker-registry microk8s

6
推荐指数
1
解决办法
3260
查看次数

Kubernetes:拉取镜像失败。服务器向 HTTPS 客户端提供 HTTP 响应

我正在尝试KubernetesDocker. 我的图像与 Docker 一起运行。我有一个主节点和两个工作节点。我还创建了一个像这样的本地注册表$ docker run -d -p 5000:5000 --restart=always --name registry registry:2并将我的图像推送到其中。到目前为止一切正常。

我添加{ "insecure-registries":["xxx.xxx.xxx.xxx:5000"] }daemon.json文件中/etc/docker。而且我还将docker-fileat的内容更改/etc/default/DOCKER_OPTS="--config-file=/etc/docker/daemon.json". 我在所有节点上进行了更改,然后我重新启动了 docker 守护进程。

我可以使用以下命令从每个节点提取我的图像:

sudo docker pull xxx.xxx.xxx.xxx:5000/helloworldimage

我尝试使用以下命令从主节点创建我的容器:

sudo kubectl run test --image xxx.xxx.xxx.xxx:5000/helloworldimage

比我收到以下错误:

Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  <unknown>          default-scheduler  Successfully assigned default/test-775f99f57-m9r4b to rpi-2
  Normal   BackOff    18s (x2 over 44s)  kubelet, rpi-2     Back-off pulling …
Run Code Online (Sandbox Code Playgroud)

json docker kubernetes docker-registry kubectl

6
推荐指数
1
解决办法
6858
查看次数

我如何列出推送到 microk8s 内置注册表的图像

我安装了 microk8s 并启用了注册表插件我能够将 docker 图像推送到此注册表,并且我能够在部署中使用这些图像。

但我正在尝试列出已经推送到此注册表的图像。我怎样才能做到这一点?有没有相关的 API?

docker kubernetes docker-registry microk8s

6
推荐指数
3
解决办法
2316
查看次数