Merge pull request #9495 from jamesorlakin/chore/hosts-documentation-ns
Document `ns` query string added to mirror requests
This commit is contained in:
		| @@ -80,12 +80,18 @@ The `/v2` portion of the pull request format shown above refers to the version o | |||||||
| distribution api. If not included in the pull request, `/v2` is added by default for all | distribution api. If not included in the pull request, `/v2` is added by default for all | ||||||
| clients compliant to the distribution specification linked above. | clients compliant to the distribution specification linked above. | ||||||
|  |  | ||||||
| For example when pulling image_name:tag from a private registry named myregistry.io over | If a host is configured that's different to the registry host namespace (e.g. a mirror), then | ||||||
|  | containerd will append the registry host namespace to requests as a query parameter called `ns`. | ||||||
|  |  | ||||||
|  | For example when pulling `image_name:tag_name` from a private registry named `myregistry.io` over | ||||||
| port 5000: | port 5000: | ||||||
| ``` | ``` | ||||||
| pull myregistry.io:5000/image_name:tag | pull myregistry.io:5000/image_name:tag_name | ||||||
| ``` | ``` | ||||||
| The pull will resolve to `https://myregistry.io:5000/v2/image_name:tag` | The pull will resolve to `https://myregistry.io:5000/v2/image_name/manifests/tag_name`. | ||||||
|  |  | ||||||
|  | The same pull with a host configuration for `mymirror.io` will resolve to | ||||||
|  | `https://mymirror.io/v2/image_name/manifests/tag_name?ns=myregistry.io:5000`. | ||||||
|  |  | ||||||
| ## Specifying Registry Credentials | ## Specifying Registry Credentials | ||||||
|  |  | ||||||
| @@ -162,6 +168,9 @@ server = "https://registry-1.docker.io"    # Exclude this to not use upstream | |||||||
|  |  | ||||||
| ### Setup Default Mirror for All Registries | ### Setup Default Mirror for All Registries | ||||||
|  |  | ||||||
|  | This is an example of using a mirror regardless of the intended registry. | ||||||
|  | The upstream registry will automatically be used after all defined hosts have been tried. | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| $ tree /etc/containerd/certs.d | $ tree /etc/containerd/certs.d | ||||||
| /etc/containerd/certs.d | /etc/containerd/certs.d | ||||||
| @@ -169,12 +178,18 @@ $ tree /etc/containerd/certs.d | |||||||
|     └── hosts.toml |     └── hosts.toml | ||||||
|  |  | ||||||
| $ cat /etc/containerd/certs.d/_default/hosts.toml | $ cat /etc/containerd/certs.d/_default/hosts.toml | ||||||
| server = "https://registry.example.com" |  | ||||||
|  |  | ||||||
| [host."https://registry.example.com"] | [host."https://registry.example.com"] | ||||||
|   capabilities = ["pull", "resolve"] |   capabilities = ["pull", "resolve"] | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | If you wish to ensure *only* the mirror is utilised and the upstream not consulted, set the mirror as the `server` instead of a host. | ||||||
|  | You may still specify additional hosts if you'd like to use other mirrors first. | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ cat /etc/containerd/certs.d/_default/hosts.toml | ||||||
|  | server = "https://registry.example.com" | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ### Bypass TLS Verification Example | ### Bypass TLS Verification Example | ||||||
|  |  | ||||||
| To bypass the TLS verification for a private registry at `192.168.31.250:5000` | To bypass the TLS verification for a private registry at `192.168.31.250:5000` | ||||||
| @@ -199,8 +214,14 @@ apply to the registry host namespace: | |||||||
| to the `hosts.toml` file. | to the `hosts.toml` file. | ||||||
|  |  | ||||||
| ## server field | ## server field | ||||||
| `server` specifies the default server for this registry host namespace. When |  | ||||||
| `host`(s) are specified, the hosts are tried first in the order listed. | `server` specifies the default server for this registry host namespace. | ||||||
|  |  | ||||||
|  | When `host`(s) are specified, the hosts will be tried first in the order listed. | ||||||
|  | If all `host`(s) are tried then `server` will be used as a fallback. | ||||||
|  |  | ||||||
|  | If `server` is not specified then the image's registry host namespace will automatically be used. | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| server = "https://docker.io" | server = "https://docker.io" | ||||||
| ``` | ``` | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Derek McGowan
					Derek McGowan