コンテナ・レジストリの既知の問題

コンテナ・レジストリでは、既知の問題が確認されています。

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日以前に、リポジトリ・パスにテナンシ名を含む既存のすべてのイメージを対象に、テナンシ名をテナンシ・ネームスペースに置き換える必要があります。

既存のイメージのリポジトリ・パスにあるテナンシ名をテナンシ・ネームスペースに置き換えるには:

  1. 次を入力してイメージをプルします:

    $ docker pull <region-key>.ocir.io/<tenancy-name>/<image-name>:<tag>

    例:

    $ docker pull phx.ocir.io/acme-dev/helloworld:latest
  2. 次を入力し、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
  3. 次を入力し、新しいリポジトリ・パスを使用してイメージをコンテナ・レジストリにプッシュします:

    $ docker push <region-key>.ocir.io/<tenancy-namespace>/<image-name>:<tag>

    例:

    $ docker push phx.ocir.io/ansh81vru1zp/helloworld:latest
  4. リポジトリ・パスにテナンシ名を含む既存のすべてのイメージについて、前述のステップを繰り返します。