Docker Registry V2 API
You can run Docker API commands. IBM Cloud Pak® for Multicloud Management version 2.3.1 uses a Docker distribution that implements the Docker Registry V2 API spec to manage the storage of Docker images.
Both cluster administrator and administrator can access the Docker Registry API. However, administrators can access only resources that belong to their namespace. Cluster administrators can access all resources in the cluster.
For details about the Docker Registry V2 API, refer to the official documentation:
Running Docker API commands
When you run a Docker API command, you must obtain an authentication certificate from a cluster node and specify the authentication token.
You must copy the /etc/docker/certs.d/<Cluster Master Host>:8500/ca.crt
file, the authentication certificate, from a cluster node to the node that runs the API commands.
<Cluster Master Host>:<Cluster Master API Port>
are used to access the APIs. The parameters are defined in Master endpoints.
You can store the authentication token in the ID_TOKEN
variable by running the following commands:
export CMD=`curl --cacert /<certificate_path>/ca.crt -s -u admin:admin "https://<Cluster Master Host>:<Cluster Master API Port>/image-manager/api/v1/auth/token?service=token-service&scope=registry:catalog:*"`
export ID_TOKEN=$(echo $CMD | python -c 'import sys,json; print json.load(sys.stdin)["token"]')
echo $ID_TOKEN
Then you can use the authentication token in your REST commands. For example, to get a list of images from Docker Registry, run the following command:
curl --cacert /<certificate_path>/ca.crt -s -H "Authorization: Bearer $ID_TOKEN" "https://<Cluster Master Host>:8500/v2/_catalog"
In this command, $ID_TOKEN
is the variable that stores the authentication cookie for your cluster.
The output resembles the following code:
{"repositories":[]}