Docker を使用してレジストリ内のコンテナ イメージを操作するには、Docker クライアントにレジストリ証明書を追加します。この証明書は、レジストリへのログイン時の Docker の認証に使用されます。

Harbor レジストリや Docker Hub などのコンテナ レジストリと通信するように Docker クライアントを構成します。この例は、Harbor スーパーバイザー サービス を使用していることを前提としています。

前提条件

このタスクでは、Docker デーモンがインストールされている Linux ホスト (Ubuntu) を使用していることを前提としています。Ubuntu ホストに Docker Engine(デーモン)をインストールするには、https://docs.docker.com/engine/install/ubuntu/ を参照してください。

Docker がインストールされ、Docker Hub からイメージをプルできることを確認するには、次のコマンドを実行します。
docker run hello-world
予期される結果:
Hello from Docker!
This message shows that your installation appears to be working correctly.
注: これらの手順は、Ubuntu 20.04 および Docker 19.03 を使用して検証されています。

手順

  1. Harbor レジストリにログインします。
  2. [管理] > [構成] > [レジストリ ルート証明書] の順に選択します。
  3. [ダウンロード] をクリックして、ca.crt という名前の Harbor レジストリ証明書をダウンロードします。
    注: 必要に応じて、証明書の名前を ca.crt に変更します。
  4. ca.crt ファイルを Docker ホスト クライアントに安全にコピーします。
  5. Docker ホストで、Harbor の IP アドレスを使用してプライベート レジストリのディレクトリ パスを作成します。
    /etc/docker/certs.d/IP-address-or-FQDN-of-harbor/
    例:
    mkdir /etc/docker/certs.d/10.179.145.77
  6. ca.crt をこのディレクトリに移動します。
    例:
     mv ca.crt /etc/docker/certs.d/10.179.145.77/ca.crt
  7. Docker デーモンを再起動します。
    sudo systemctl restart docker.service
  8. Docker クライアントを使用して、組み込みの Harbor レジストリにログインします。
    docker login https://10.179.145.77
    次のメッセージが表示されます。
    WARNING! Your password will be stored unencrypted in /home/ubuntu/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded