The Docker CLI
Go to file
Sebastiaan van Stijn aa91af81c6
Add deprecation note for non-compliant registries
Docker Engine v20.10 and up includes optimizations to verify if images in the
local image cache need updating before pulling, preventing the Docker Engine
from making unnecessary API requests. These optimizations require the container
image registry to conform to the Open Container Initiative Distribution Specification
(https://github.com/opencontainers/distribution-spec).

While most registries conform to the specification, we encountered some registries
to be non-compliant, resulting in `docker pull` to fail.

As a temporary solution, Docker Engine v20.10 includes a fallback mechanism to
allow `docker pull` to be functional when using a non-compliant registry. A
warning message is printed in this situation:

    WARNING Failed to pull manifest by the resolved digest. This registry does not
            appear to conform to the distribution registry specification; falling back to
            pull by tag. This fallback is DEPRECATED, and will be removed in a future
            release.

The fallback is added to allow users to either migrate their images to a compliant
registry, or for these registries to become compliant.

Note that this fallback only addresses failures on `docker pull`. Other commands,
such as `docker stack deploy`, or pulling images with `containerd` will continue
to fail.

Given that other functionality is still broken with these registries, we consider
this fallback a _temporary_ solution, and will remove the fallback in an upcoming
major release.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-12-07 13:34:50 +01:00
.circleci CircleCI: update to docker 19.03.12 2020-09-11 16:44:02 +02:00
.github GH Actions: run CodeQL only on cron-job, not on pull requests 2020-10-01 16:51:28 +02:00
cli Remove k8s.io/kubernetes dependency 2020-12-04 00:27:40 +01:00
cli-plugins Always enable experimental features 2020-10-02 15:59:42 +02:00
cmd/docker Merge pull request #2735 from thaJeztah/fix_flag_hiding 2020-10-29 15:59:02 +01:00
contrib/completion Merge pull request #2831 from tianon/containerd 2020-11-10 23:57:02 +01:00
dockerfiles Bump vndr v0.1.2 2020-10-16 01:32:00 +02:00
docs Add deprecation note for non-compliant registries 2020-12-07 13:34:50 +01:00
e2e Replace tab with spaces in usage output 2020-10-02 15:41:17 +02:00
experimental experimental/vlan-networks: markdown touch-ups 2020-04-19 17:53:19 +02:00
internal/test bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-23 00:28:55 +01:00
kubernetes Always enable experimental features 2020-10-02 15:59:42 +02:00
man Replace deprecated instruction 2020-10-23 19:49:51 +02:00
opts opts: fix potential integer overflow CWE-190, CWE-681 2020-10-24 01:30:42 +02:00
scripts Dockerfiles: update shellcheck v0.7.1 2020-08-20 15:46:07 +02:00
service/logs bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-23 00:28:55 +01:00
templates bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-23 00:28:55 +01:00
vendor Remove k8s.io/kubernetes dependency 2020-12-04 00:27:40 +01:00
.dockerignore Update .dockerignore 2020-08-20 15:46:46 +02:00
.gitignore Add checks for dependencies that are not vendored. 2020-07-06 09:23:19 +00:00
.golangci.yml Remove now obsolete gometalinter and use golangci-lint instead 2019-10-31 19:22:44 +01:00
.mailmap Update authors and mailmap 2020-08-06 01:58:32 +02:00
AUTHORS Update authors and mailmap 2020-08-06 01:58:32 +02:00
CONTRIBUTING.md Fix broken link in CONTRIBUTING 2020-03-19 15:03:59 +01:00
Jenkinsfile Fix make -f docker.Makefile without buildkit enabled 2020-09-24 13:01:42 +02:00
LICENSE Add project files 2017-04-17 17:49:33 -04:00
MAINTAINERS Maintainers: remove Justin and Aaron 2019-12-04 13:08:15 +01:00
Makefile Add checks for dependencies that are not vendored. 2020-07-06 09:23:19 +00:00
NOTICE switch kr/pty to creack/pty v1.1.7 2019-07-29 16:45:41 -07:00
README.md update Jenkins Build Status urls for README 2019-10-24 11:21:12 -04:00
TESTING.md Update TESTING.md to replace testify by gotest.tools 2018-07-02 09:24:28 +02:00
VERSION Update version to 20.10-dev 2020-10-13 09:37:17 +02:00
appveyor.yml Bump Golang 1.13.15 2020-08-10 17:24:48 +02:00
codecov.yml Fix PR comments 2018-01-03 10:23:32 +01:00
docker.Makefile Fix make -f docker.Makefile without buildkit enabled 2020-09-24 13:01:42 +02:00
poule.yml Add github templates and initial poule configuration 2017-05-09 16:57:46 +02:00
vendor.conf Remove k8s.io/kubernetes dependency 2020-12-04 00:27:40 +01:00

README.md

build status Build Status

docker/cli

This repository is the home of the cli used in the Docker CE and Docker EE products.

Development

docker/cli is developed using Docker.

Build a linux binary:

$ make -f docker.Makefile binary

Build binaries for all supported platforms:

$ make -f docker.Makefile cross

Run all linting:

$ make -f docker.Makefile lint

List all the available targets:

$ make help

In-container development environment

Start an interactive development environment:

$ make -f docker.Makefile shell

In the development environment you can run many tasks, including build binaries:

$ make binary

Legal

Brought to you courtesy of our legal counsel. For more context, please see the NOTICE document in this repo.

Use and transfer of Docker may be subject to certain restrictions by the United States and other governments.

It is your responsibility to ensure that your use and/or transfer does not violate applicable laws.

For more information, please see https://www.bis.doc.gov

Licensing

docker/cli is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.