Skip to content

Commit 0b78ed2

Browse files
thaJeztahkrissetto
authored andcommitted
Deprecate configuration for pushing non-distributable artifacts
Non-distributable artifacts (also called foreign layers) were introduced in docker v1.12 to accommodate Windows images for which the EULA did not allow layers to be distributed through registries other than those hosted by Microsoft. The concept of foreign / non-distributable layers was adopted by the OCI distribution spec in [oci#233]. These restrictions were relaxed later to allow distributing these images through non-public registries, for which a configuration was added in Docker v17.0.6.0. In 2022, Microsoft updated the EULA and [removed these restrictions][msft-3645201], followed by the OCI distribution specification deprecating foreign layers in [oci#965]. In 2023, Microsoft [removed the use of foreign data layers][msft-3846833] for their images, making this functionality obsolete. Docker v28.0 deprecates the `--allow-nondistributable-artifacts` daemon flag and corresponding `allow-nondistributable-artifacts` field in `daemon.json`. Setting either option no longer takes an effect, but a deprecation warning log is added to raise awareness about the deprecation. This warning is planned to become an error in the Docker v29.0. Users currently using these options are therefore recommended to remove this option from their configuration to prevent the daemon from starting when upgrading to Docker v29.0. The `AllowNondistributableArtifactsCIDRs` and `AllowNondistributableArtifactsHostnames` fields in the `RegistryConfig` of the `GET /info` API response are also deprecated. For API version v1.48 and lower, the fields are still included in the response but always `null`. In API version v1.49 and higher, the field will be omitted entirely. [oci#233]: opencontainers/image-spec#233 [oci#965]: opencontainers/image-spec#965 [msft-3645201]: https://techcommunity.microsoft.com/blog/containers/announcing-windows-container-base-image-redistribution-rights-change/3645201 [msft-3846833]: https://techcommunity.microsoft.com/blog/containers/announcing-removal-of-foreign-layers-from-windows-container-images/3846833 Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent e416a2a commit 0b78ed2

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

docs/deprecated.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ The following table provides an overview of the current status of deprecated fea
5353

5454
| Status | Feature | Deprecated | Remove |
5555
|------------|------------------------------------------------------------------------------------------------------------------------------------|------------|--------|
56+
| Deprecated | [Configuration for pushing non-distributable artifacts](#configuration-for-pushing-non-distributable-artifacts) | v28.0 | v29.0 |
5657
| Deprecated | [`--time` option on `docker stop` and `docker restart`](#--time-option-on-docker-stop-and-docker-restart) | v28.0 | - |
5758
| Deprecated | [Non-standard fields in image inspect](#non-standard-fields-in-image-inspect) | v27.0 | v28.0 |
5859
| Removed | [API CORS headers](#api-cors-headers) | v27.0 | v28.0 |
@@ -119,6 +120,45 @@ The following table provides an overview of the current status of deprecated fea
119120
| Removed | [`--run` flag on `docker commit`](#--run-flag-on-docker-commit) | v0.10 | v1.13 |
120121
| Removed | [Three arguments form in `docker import`](#three-arguments-form-in-docker-import) | v0.6.7 | v1.12 |
121122

123+
## Configuration for pushing non-distributable artifacts
124+
125+
**Deprecated in Release: v28.0**
126+
**Target For Removal In Release: v29.0**
127+
128+
Non-distributable artifacts (also called foreign layers) were introduced in
129+
docker v1.12 to accommodate Windows images for which the EULA did not allow
130+
layers to be distributed through registries other than those hosted by Microsoft.
131+
The concept of foreign / non-distributable layers was adopted by the OCI distribution
132+
spec in [oci#233]. These restrictions were relaxed later to allow distributing
133+
these images through non-public registries, for which a configuration was added
134+
in Docker v17.0.6.0.
135+
136+
In 2022, Microsoft updated the EULA and [removed these restrictions][msft-3645201],
137+
followed by the OCI distribution specification deprecating foreign layers in [oci#965].
138+
In 2023, Microsoft [removed the use of foreign data layers][msft-3846833] for their images,
139+
making this functionality obsolete.
140+
141+
Docker v28.0 deprecates the `--allow-nondistributable-artifacts` daemon flag and
142+
corresponding `allow-nondistributable-artifacts` field in `daemon.json`. Setting
143+
either option no longer takes an effect, but a deprecation warning log is added
144+
to raise awareness about the deprecation. This warning is planned to become an
145+
error in the Docker v29.0.
146+
147+
Users currently using these options are therefore recommended to remove this
148+
option from their configuration to prevent the daemon from starting when
149+
upgrading to Docker v29.0.
150+
151+
The `AllowNondistributableArtifactsCIDRs` and `AllowNondistributableArtifactsHostnames`
152+
fields in the `RegistryConfig` of the `GET /info` API response are also deprecated.
153+
For API version v1.48 and lower, the fields are still included in the response
154+
but always `null`. In API version v1.49 and higher, the field will be omitted
155+
entirely.
156+
157+
[oci#233]: https://github.com/opencontainers/image-spec/pull/233
158+
[oci#965]: https://github.com/opencontainers/image-spec/pull/965
159+
[msft-3645201]: https://techcommunity.microsoft.com/blog/containers/announcing-windows-container-base-image-redistribution-rights-change/3645201
160+
[msft-3846833]: https://techcommunity.microsoft.com/blog/containers/announcing-removal-of-foreign-layers-from-windows-container-images/3846833
161+
122162
### `--time` option on `docker stop` and `docker restart`
123163

124164
**Deprecated in Release: v28.0**

0 commit comments

Comments
 (0)