コンテナ・レジストリの既知の問題
コンテナ・レジストリでは、既知の問題が確認されています。
2019年9月30日以前に、イメージ・タグおよびDockerログイン資格証明にテナンシ名ではなくテナンシ・ネームスペースを使用します
- 詳細
-
これまで、Oracle Cloud Infrastructure Registryにログインするとき、およびコンテナ・レジストリのイメージに対して操作を実行するときは、テナンシ名またはテナンシ・ネームスペースのいずれかを使用することができました。
2019年9月30日より後は、Oracle Cloud Infrastructure Registryの使用時にテナンシ名ではなくテナンシ・ネームスペースを使用する必要があります。
- 背景
-
2019年9月30日より後は、次のことができなくなります:
- Oracle Cloud Infrastructure Registryにログインするときにテナンシ名を指定します。
- リポジトリ・パスにテナンシ名を含むイメージに対する操作を実行します。
かわりに、Oracle Cloud Infrastructure Registryの使用時にテナンシ名ではなくテナンシ・ネームスペースを使用する必要があります。
テナンシ・ネームスペースは、自動生成された英数字の不変ランダム文字列です。たとえば、acme-devテナンシのネームスペースはansh81vru1zpです。テナンシ・ネームスペースは、コンソールの「コンテナ・レジストリ」ページで確認できます。
一部の古いテナンシでは、テナンシ・ネームスペースがテナンシ名と同じである可能性があります。その場合、処置は必要ありません。
2019年9月30日以前は、テナンシ・ネームスペースとテナンシ名が異なる場合、次が必要です:
- Oracle Cloud Infrastructure Registryにログインするときに、テナンシ名のかわりにテナンシ・ネームスペースの指定を開始します。
- Oracle Cloud Infrastructure Registryに新規イメージをプッシュするときに、テナンシ名のかわりにテナンシ・ネームスペースの指定を開始します。
- パスにテナンシ名を含むOracle Cloud Infrastructure Registryの既存のイメージを移行します。
次の回避策と例での前提:
- テナンシ名はacme-devです
- テナンシ・ネームスペースはansh81vru1zpです
- ユーザー名はjdoe@acme.comです
- Oracle Cloud Infrastructure Registryにログインするための回避策
-
以前は、Oracle Cloud Infrastructure Registryにログインするときに、ユーザー名を求められ、
<tenancy-name>/<username>
という形式で入力できました。例:
$ docker login phx.ocir.io Username: acme-dev/jdoe@acme.com Password:
2019年9月30日以前に、Oracle Cloud Infrastructure Registryへのログイン時に、テナンシ名のかわりにテナンシ・ネームスペースの使用を開始する必要があります。ユーザー名を求められたら、
<tenancy-namespace>/<username>
という形式で入力します。例:
$ docker login phx.ocir.io Username: ansh81vru1zp/jdoe@acme.com Password:
- Oracle Cloud Infrastructure Registryへの新しいイメージのプッシュの回避策
-
以前は、新しいイメージをOracle Cloud Infrastructure Registryにプッシュするときに、
docker push
コマンドのリポジトリ・パスの一部としてテナンシ名を指定できました。この形式でコマンドを入力できました:$ docker push <region-key>.ocir.io/<tenancy-name>/<image-name>:<tag>
例:
$ docker push phx.ocir.io/acme-dev/helloworld:latest
2019年9月30日以前に、新規イメージのプッシュ時に、
docker push
コマンドでテナンシ名のかわりにテナンシ・ネームスペースの使用を開始する必要があります。この形式でコマンドを入力します:$ docker push <region-key>.ocir.io/<tenancy-namespace>/<image-name>:<tag>
例:
$ docker push phx.ocir.io/ansh81vru1zp/helloworld:latest
- リポジトリ・パスにテナンシ名を含むOracle Cloud Infrastructure Registryの既存のイメージの回避策
-
以前にOracle Cloud Infrastructure Registryにイメージをプッシュした場合、それらの既存のイメージにリポジトリ・パスの一部としてテナンシ名が含まれている可能性があります。たとえば、
phx.ocir.io/acme-dev/helloworld:latest
です。2019年9月30日より後は、リポジトリ・パスにテナンシ名を含むコンテナ・レジストリの既存のイメージに対して操作を実行できなくなります。
そのため、2019年9月30日以前に、リポジトリ・パスにテナンシ名を含む既存のすべてのイメージを対象に、テナンシ名をテナンシ・ネームスペースに置き換える必要があります。
既存のイメージのリポジトリ・パスにあるテナンシ名をテナンシ・ネームスペースに置き換えるには:
-
次を入力してイメージをプルします:
$ docker pull <region-key>.ocir.io/<tenancy-name>/<image-name>:<tag>
例:
$ docker pull phx.ocir.io/acme-dev/helloworld:latest
-
次を入力し、
docker tag
コマンドを使用してリポジトリ・パスを変更します:$ docker tag <region-key>.ocir.io/<tenancy-name>/<image-name>:<tag> <region-key>.ocir.io/<tenancy-namespace>/<image-name>:<tag>
例:
$ docker tag phx.ocir.io/acme-dev/helloworld:latest phx.ocir.io/ansh81vru1zp/helloworld:latest
-
次を入力し、新しいリポジトリ・パスを使用してイメージをコンテナ・レジストリにプッシュします:
$ docker push <region-key>.ocir.io/<tenancy-namespace>/<image-name>:<tag>
例:
$ docker push phx.ocir.io/ansh81vru1zp/helloworld:latest
-
リポジトリ・パスにテナンシ名を含む既存のすべてのイメージについて、前述のステップを繰り返します。
-