2017-08-10 20 views
4

私のラップトップでDockerイメージを取得し、ローカル開発を行うOpenShift Originイメージレジストリ(oc cluster upで開始)にプッシュできるようにすることです。 DockerやOpenShift Originに何か間違いやバグがあるのか​​どうかは明らかではありません。 OpenShift原点に慣れていない人のために:dockerイメージをローカルの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: "" 

実行中のアルパインは興味深いものではありません。結果は、プッシュしようとする画像に関係なく同じです。ログインは実際に動作しているようです。トークンの一部を削除または変更すると、ログインに失敗します。ドッカーのバージョンでは、私が実行している:

# 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 

答えて

3

あなたは、上記のレジストリを公開することができますがしかし、それは必須ではありません。

内部IPを使用する場合、ドッカーのプッシュコマンドdocker push 172.30.1.1:5000/alpine:latestが正しくありません。 いずれの場合(外部ルートまたは内部IP)でも、イメージ名前空間と名前に基づいて内部レジストリが適切なイメージストリームを作成します。画像ストリームの名前とその名前空間/プロジェクトはプッシュから取得されます。 oc cluster upmyprojectの場合には(へのアクセスを持って

  • ドッキングウィンドウのレジストリIPとポート(外部ルートまたは内部IP)
  • 名前空間/プロジェクトユーザー:これは、あなたが3つの要素で画像にタグを付けることを確認する必要があることを意味しますdocker push 172.30.1.1:5000/myproject/alpine:latest:デフォルトでは、画像ストリーム名は、あなたのケースではドッキングウィンドウのプッシュは次のようになります。
  • ついに
  • )1人のユーザーがアクセス権を持っている

です。

+1

私は行方不明だった。ありがとう! –

2

ドッカ画像をプッシュしようとしたときに影響を与える可能性のある問題のカップルが潜在的にあります。

これまでに、内部イメージレジストリにアクセスする方法は、ルートを使用して公開することでした。 IPを使用しているのはoc cluster upにのみ適用されるため、代わりにルートを使用する方法が示されます。

oc cluster upためには、実行します:使用して内部映像レジストリへ

http://docker-registry-default.127.0.0.1.nip.io/ 

次のログイン:

oc expose svc/docker-registry -n default --as system:admin 

これは、内部の画像レジストリのためのURLを作成します

docker login -u developer -p `oc whoami -t` http://docker-registry-default.127.0.0.1.nip.io:80/ 

ログイン時にURLに:80を必ず入力してください。内部イメージレジストリが安全なルートを使用して公開されている場合は、代わりに:80の代わりに:443を使用します。

次はイメージにタグを付けるが、イメージストリームを追加するプロジェクト名を含める場合は、タグ付けするものに注意してください。 。

再び

使用:それは私はそれがで終わると思ったプロジェクトであるよう

が、私はタグでmyprojectを含む方法を参照してください

詳細に

docker tag alpine:latest docker-registry-default.127.0.0.1.nip.io:80/myproject/alpine 
名前のポートの場合は :80です。 httpが指定されていても、ログイン時にURLにポートが必要な場合は、3.6.0またはdockerコマンドラインクライアントのバグになる可能性があります。 3.6.0を使用している現時点でOpenShift Onlineに対してこれについて言及しています。

今の画像プッシュすることができます:コマンドの

docker push docker-registry-default.127.0.0.1.nip.io:80/myproject/alpine 

全配列である:グラハム指摘のように

$ oc expose svc/docker-registry -n default --as system:admin 
route "docker-registry" exposed 

$ docker login -u developer -p `oc whoami -t` http://docker-registry-default.127.0.0.1.nip.io:80/ 
Login Succeeded 

$ docker tag alpine:latest docker-registry-default.127.0.0.1.nip.io:80/myproject/alpine 

$ docker push docker-registry-default.127.0.0.1.nip.io:80/myproject/alpine 
The push refers to a repository [docker-registry-default.127.0.0.1.nip.io:80/myproject/alpine] 
5bef08742407: Layer already exists 
latest: digest: sha256:471fd6e70d36b9c221f76464d0a9ff78392ccee359da351ebfec45138fb40f9b size: 528 

$ oc get is 
NAME  DOCKER REPO      TAGS  UPDATED 
alpine 172.30.1.1:5000/myproject/alpine latest 10 seconds ago 
+0

徹底的な説明をお願い致します! –

関連する問題