众所周知,我们可以--insecure-registry在/etc/default/docker配置文件中添加一个以允许不安全的注册表,如下所示:
DOCKER_OPTS="$DOCKER_OPTS --insecure-registry myregistry:5000"
Run Code Online (Sandbox Code Playgroud)
我的问题是:它是否支持添加多个,--insecure-registry因为我们需要与多个注册管理机构进行通信?
我想在Docker Registry v2中拥有2个用户:
如何创建只读用户?
我正在努力让Kubernetes使用我的私有hub.docker.com注册表图像.
我正在使用kubectl版本: Client Version: version.Info{Major:"1", Minor:"1+", GitVersion:"v1.1.0-alpha.0.1588+e44c8e6661c931", GitCommit:"e44c8e6661c931f7fd434911b0d3bca140e1df3a", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.3", GitCommit:"6a81b50c7e97bbe0ade075de55ab4fa34f049dc2", GitTreeState:"clean"}
和1.7.4Mac OS X上的VagrantYosemite 10.10.5
我按照这里给出的说明操作:https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/user-guide/images.md#pre-pulling-images
简而言之,它表示您应该登录到注册表,然后base64编码结果的内容.docker/config.json,并在yaml文档中使用它,如下所示:
apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
data:
.dockercfg: eyAiYXV0aHMiOiB7ICJodHRwczovL2luZGV4LmRvY2tlci5pby92MS8iOiB7ICJhdXRoIjogImFXNTBjbWx1YzJsak9tSTJVVTR5Z...h1YkBpbnRyaW5zaWMud29ybGQiIH0gfSB9Cg==
type: kubernetes.io/dockercfg
Run Code Online (Sandbox Code Playgroud)
然后将其喂给kubectl.然后myregistrykey我在我的pod定义中使用了生成的键(此处称为):
apiVersion: v1
kind: Pod
metadata:
name: authorities-backend
spec:
containers:
- name: authorities-backend
image: intrinsic/authorities-backend:latest
imagePullSecrets:
- name: myregistrykey
Run Code Online (Sandbox Code Playgroud)
并且kubectl create它.
但是,kubectl无法检索图像:
[root@kubernetes-master intrinsic]# kubectl get pods
NAME READY STATUS RESTARTS AGE
authorities-backend 0/1 …Run Code Online (Sandbox Code Playgroud) 我已经设置了一个使用自签名证书的docker注册表,但是我收到了这个错误.这次握手错误是什么意思?每当我尝试将图像推送到我的注册表时,日志就会增加.(这是关于tls的我的注册表的日志)
$ docker logs 30273f6ed90f | grep tls
2015/12/15 13:42:25 http: TLS handshake error from 10.0.0.xx:43393: EOF
2015/12/15 13:42:30 http: TLS handshake error from 10.0.0.xx:43396: EOF
2015/12/15 13:42:40 http: TLS handshake error from 10.0.0.xx:43401: EOF
2015/12/15 13:44:34 http: TLS handshake error from 10.0.0.xx:43442: EOF
2015/12/15 13:44:39 http: TLS handshake error from 10.0.0.xx:43443: EOF
2015/12/15 13:44:49 http: TLS handshake error from 10.0.0.xx:43460: EOF
2015/12/15 13:45:25 http: TLS handshake error from 10.0.0.xx:43479: tls: first record does not look like a TLS handshake …Run Code Online (Sandbox Code Playgroud) 我对docker的空间使用有问题.我有
在/ var/lib中/泊坞窗/ AUFS /比较/ e20ed0ec78d30267e8cf855c6311b02089b6086ea149c21997a3e6cb9757ecd4的/ tmp /注册表-dev /目录泊坞窗/注册表/ V2 /斑点#杜-SH
4.6G.
我能找到这个文件夹属于哪个容器吗?我有docker注册表运行但在那里我有
/ var/lib/registry/docker/registry/v2/blobs #du -sh
465M.
我怀疑泊坞窗升级(我用的迁移工具https://docs.docker.com/engine/migration/这里)都有可能留下它,或者,我之前建立泊坞窗注册表自己,并移动到预编译注册表左这个.
我可以以某种方式检查它所面对的容器吗?或者,它是否属于任何?
我无法使用以下命令将docker镜像推送到集线器:
mvn clean package docker:build -DpushImage
Run Code Online (Sandbox Code Playgroud)
每次我得到以下回复:
[WARNING] Failed to push jdruwe/k8s-product-owner, retrying in 10 seconds (5/5).
...
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project k8s-product-owner: Exception caught: unauthorized: authentication required -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下命令之一登录时,我不断收到错误甚至登录成功
docker login -u jdruwe https://index.docker.io/v1/
OR
docker login
Run Code Online (Sandbox Code Playgroud)
我确实在集线器上创建了一个空仓库,试图修复它:
有任何想法吗?
我正在尝试从Docker商店获取所有官方映像的列表。但是,我找不到任何简单的方法来获取列表。Docker CLI有一个docker search命令,但是它没有任何参数可以从Docker Store获取所有映像的列表,然后稍后对其进行过滤。
有什么想法可以做到吗?
我有一个 docker 镜像,称之为 dockerimage/test。每次更新时,我都会增加一个标签,例如 dockerimage/test:1、dockerimage/test:2 等等。
当我使用 docker 在本地计算机上拉取并运行映像时,效果很好,并且我可以看到对映像所做的更改。但是,我还有一个安装了 docker 的虚拟机,当我在其上拉取映像并运行它时,它仅显示网站的旧版本(即,就像映像尚未更新,即使 docker 说它已下载)较新的版本)。
我想知道我是否错误地标记了虚拟机上的映像,即它运行了错误的映像,因此我尝试删除虚拟机上的所有映像,创建一个新映像(即 dockerimage/test:3),然后运行它。同样,在我的本地计算机上运行良好,仅在我的虚拟机上显示旧版本。
我尝试清除浏览器缓存、编辑文件、创建新注册表、重新启动计算机,但都没有效果。
此时,我只想删除与此图像/容器关联的所有内容,并获取新版本。但看起来 docker 正在存储一些东西,所以我不能。
我知道 docker 在处理图像方面是“智能”的 - 它可以识别重复的图像、文件等,但是是否有办法强制删除图像,并强制重新下载图像,以便它重新下载所有文件?
我正在尝试创建一个docker注册表并且发生了一些问题,我无法执行push和pull等操作,它遵循我的环境设置:
# docker container run -d -p 5000:5000 --name registry --restart=always registry:2
Run Code Online (Sandbox Code Playgroud)
放在nginx代理后面,按照myregistry.conf设置:
upstream docker_registry {
server 127.0.0.1:5000;
}
map $upstream_http_docker_distribution_api_version $docker_distribution_api_version {
'' 'registry/2.0';
}
server {
listen 80;
server_name registry-srv-web.myregistry.com;
ssl off;
proxy_send_timeout 120;
proxy_read_timeout 300;
proxy_buffering off;
tcp_nodelay on;
server_tokens off;
client_max_body_size 1G;
chunked_transfer_encoding on;
location / {
if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$" ) {
return 404;
}
add_header 'Docker-Distribution-Api-Version' $docker_distribution_api_version always;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Authorization "";
proxy_set_header Host $http_host; …Run Code Online (Sandbox Code Playgroud) 我的头撞在墙上已经有一段时间了。
虽然“最新”标签构建得很好,但“开发”标签(或我尝试过的任何其他标签都没有。
Removing intermediate container df365d3a022f ---> dd24ff34c9e9 Successfully built dd34ff34c9e9 Successfully tagged myrepo/app:latest Pushing index.docker.io/myrepo/app:dev... Push failed. Attempt 2 in 60 seconds. Push failed. Attempt 3 in 60 seconds. Push failed. Attempt 4 in 60 seconds. Push failed. Attempt 5 in 60 seconds. {u'message': u'tag does not exist: myrepo/app:dev'}
当我在本地构建时,我可以将相同的标签推送到 Docker Hub:
docker push docker.io/nomadcalendar/app:dev The push refers to repository [docker.io/myrepo/app] a69634ab3c0f: Preparing 0daa743ba1bd: Preparing ... 030309cad3ba: Layer already exists dev: digest: sha256:9a828hgh5ccabd3364666cb20774f53dc1b5e1563329f8fd801edcae4b50f30 size: 16805
即使在本地构建并推送到 Docker Hub 的标签出现在 …
docker ×10
docker-registry ×10
dockerhub ×1
filesystems ×1
handshake ×1
kubernetes ×1
maven ×1
maven-plugin ×1
nginx ×1
proxy ×1
spotify ×1
ssl ×1