Once upon a time, there was a website named ["The Docker index"][2]; a complimentary service for users of Docker, provided by dotCloud. The Docker Index was the place to find and explore pre-made container images, and allowed you to [share your images and download them][1]. The Docker Index evolved rapidly, and gained new features, such as [Trusted Images][3], and "stars" to rank your favorite images. The website also provided an API, which allowed you to search images, even from the comfort of your `docker` CLI. Things moved fast in container-land, and while there was an API to use, it was still a work in progress. While the Docker Index allowed users to "star" images, the search API did not rank results accordingly. As any engineer knows, there's no problem that can't be solved with some elbow- grease and a piece of Duct tape, so while the Docker Index team worked on making the search API better, the `docker` engine [fixed the problem on the client side][4] Years went by, and the Docker Index API became the "registry V1" specification, including search. The registry got a major "v2" rewrite and became the [OCI Distribution Spec][5], and Docker Index became Docker Hub, which included V2 and V3 search APIs. The V1 search API continued to be supported, as it was the only documented API for registries, but improvements were made, including ranking of search results. Duct tape is durable, and even though improvements were made, the Docker client continued to sort the results as well. Unfortunately, this meant that search results on the command-line were ranked different from their equivalent on the registry (such as Docker Hub). This patch removes the client-side sorting of results, using the order in which the search API returned them to (finally) celebrate the work of the engineers working on the search API, also when used from the command-line. [1]: https://web.archive.org/web/20130708004229/http://docker.io/ [2]: https://web.archive.org/web/20130623223614/https://index.docker.io/ [3]: https://web.archive.org/web/20140208001647/https://index.docker.io/ [4]: https://github.com/docker/docker/commit/1669b802cc3e7ce30f05e61630542c88696bbca1 [5]: https://github.com/opencontainers/distribution-spec Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Docker CLI
About
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 CLI from source:
docker buildx bake
Build binaries for all supported platforms:
docker buildx bake cross
Build for a specific platform:
docker buildx bake --set binary.platform=linux/arm64
Build dynamic binary for glibc or musl:
USE_GLIBC=1 docker buildx bake dynbinary
Run all linting:
docker buildx bake lint shellcheck
Run test:
docker buildx bake test
List all the available targets:
make help
In-container development environment
Start an interactive development environment:
make -f docker.Makefile shell
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.