Lex*_*ick 7 docker openshift-origin
目标是能够在我的笔记本电脑上获取Docker镜像并将其推送到OpenShift Origin图像注册表(启动oc cluster up)以进行本地开发.目前尚不清楚我是在做错事还是在Docker或OpenShift Origin中存在错误.对于那些不熟悉OpenShift Origin的人:
https://github.com/openshift/origin/blob/master/docs/cluster_up_down.md
任何有启发性的信息将不胜感激.这是我到目前为止所尝试的:
# oc cluster up
Starting OpenShift using openshift/origin:v3.6.0 ...
OpenShift server started.
The server is accessible via web console at:
https://127.0.0.1:8443
You are logged in as:
User: developer
Password: <any value>
To login as administrator:
oc login -u system:admin
# docker container ls | fgrep origin-docker-registry
9de6bb0cdd28 openshift/origin-docker-registry "/bin/sh -c '/usr/..."
# docker inspect 9de6bb0cdd28 | fgrep DOCKER_REGISTRY_PORT
"DOCKER_REGISTRY_PORT_5000_TCP_PROTO=tcp",
"DOCKER_REGISTRY_PORT=tcp://172.30.1.1:5000",
"DOCKER_REGISTRY_PORT_5000_TCP_PORT=5000",
"DOCKER_REGISTRY_PORT_5000_TCP_ADDR=172.30.1.1",
"DOCKER_REGISTRY_PORT_5000_TCP=tcp://172.30.1.1:5000",
# oc whoami -t
qH2cTKtIpr1QB1dMw10ffiDGX1iH_uocrtXaFPyTei8
# docker login -u developer -p qH2cTKtIpr1QB1dMw10ffiDGX1iH_uocrtXaFPyTei8 172.30.1.1:5000
Login Succeeded
# docker tag alpine:latest 172.30.1.1:5000/alpine:latest
# docker push 172.30.1.1:5000/alpine:latest
The push refers to a repository [172.30.1.1:5000/alpine]
5bef08742407: Preparing
error parsing HTTP 400 response body: unexpected end of JSON input: ""
Run Code Online (Sandbox Code Playgroud)
我知道跑阿尔卑斯山不会产生任何有趣的东西.无论我试图推送什么图像,结果都是一样的.登录似乎确实有效.如果我删除或更改令牌的任何部分,登录将失败.我正在运行的Docker版本:
# docker version
Client:
Version: 17.06.0-ce
API version: 1.30
Go version: go1.8.3
Git commit: 02c1d87
Built: Fri Jun 23 21:31:53 2017
OS/Arch: darwin/amd64
Server:
Version: 17.06.0-ce
API version: 1.30 (minimum version 1.12)
Go version: go1.8.3
Git commit: 02c1d87
Built: Fri Jun 23 21:51:55 2017
OS/Arch: linux/amd64
Experimental: true
Run Code Online (Sandbox Code Playgroud)
正如格雷厄姆上面指出的那样,您可以公开注册表,但这不是必需的。
在您使用内部 IP 的情况下,docker Push 命令docker push 172.30.1.1:5000/alpine:latest不正确。无论哪种情况(外部路由或内部 IP),内部注册表都会根据图像命名空间和名称为您创建适当的图像流。图像流的名称及其命名空间/项目取自推送。这意味着您需要确保使用 3 个元素标记图像:
oc cluster up myproject您的用户有权访问的默认名称空间/项目)在您的情况下,docker Push 应该如下所示docker push 172.30.1.1:5000/myproject/alpine:latest: