-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
image ls --tree: order images alphabetically #5561
Draft
thaJeztah
wants to merge
2
commits into
docker:master
Choose a base branch
from
thaJeztah:tree_sorting
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A single image can be tagged under multiple names. While they are the same image under the hood (same digest), we always presented these as separate images in the list. This patch applies the same behavior for the tree view; we can consider having some "compact" presentation in future where we collapse these iamges (perhaps introducing a "names" column?) Before this patch: $ docker pull --quiet alpine:3.20 docker.io/library/alpine:3.20 $ docker pull --quiet alpine:latest docker.io/library/alpine:latest $ docker image ls --tree IMAGE ID DISK USAGE CONTENT SIZE USED alpine:3.20 alpine:latest beefdbd8a1da 13.6MB 4.09MB ├─ linux/arm64/v8 9cee2b382fe2 13.6MB 4.09MB ├─ linux/amd64 33735bd63cf8 0B 0B ├─ linux/arm/v6 50f635c8b04d 0B 0B ├─ linux/arm/v7 f2f82d424957 0B 0B ├─ linux/386 b3e87f642f5c 0B 0B ├─ linux/ppc64le c7a6800e3dc5 0B 0B ├─ linux/riscv64 80cde017a105 0B 0B └─ linux/s390x 2b5b26e09ca2 0B 0B With this patch applied: $ docker image ls --tree IMAGE ID DISK USAGE CONTENT SIZE USED alpine:3.20 beefdbd8a1da 13.6MB 4.09MB ├─ linux/arm64/v8 9cee2b382fe2 13.6MB 4.09MB ├─ linux/amd64 33735bd63cf8 0B 0B ├─ linux/arm/v6 50f635c8b04d 0B 0B ├─ linux/arm/v7 f2f82d424957 0B 0B ├─ linux/386 b3e87f642f5c 0B 0B ├─ linux/ppc64le c7a6800e3dc5 0B 0B ├─ linux/riscv64 80cde017a105 0B 0B └─ linux/s390x 2b5b26e09ca2 0B 0B alpine:latest beefdbd8a1da 13.6MB 4.09MB ├─ linux/arm64/v8 9cee2b382fe2 13.6MB 4.09MB ├─ linux/amd64 33735bd63cf8 0B 0B ├─ linux/arm/v6 50f635c8b04d 0B 0B ├─ linux/arm/v7 f2f82d424957 0B 0B ├─ linux/386 b3e87f642f5c 0B 0B ├─ linux/ppc64le c7a6800e3dc5 0B 0B ├─ linux/riscv64 80cde017a105 0B 0B └─ linux/s390x 2b5b26e09ca2 0B 0B Signed-off-by: Sebastiaan van Stijn <[email protected]>
The tree output currently uses the same sort order as the existing non-tree output, and orders the images by "created" time in descending order; docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 8262a6d8c38a 7 minutes ago 13.6MB docker-cli-dev latest f5f0547476ee 12 minutes ago 762MB nginx alpine 2140dad235c1 2 weeks ago 76.7MB alpine latest beefdbd8a1da 6 weeks ago 24.2MB However, the `--tree` view does not have a `CREATED` column, which makes the output order seem "random". With the tree view being more verbose, it may also be harder to find back images in the list when they're not sorted in an easy to discover way. This patch changes the sort order: - alphabetically (natural sort) for tagged images - untagged images are sorted last, as they're likely less relevant to the user, and should not be "polluting" th top of the list. - if multiple untagged images exist, they are sorted by created date (descending) to get a stable order. Before this patch: $ docker image ls --tree IMAGE ID DISK USAGE CONTENT SIZE USED <untagged> 20ad73eca911 13.6MB 4.09MB ✔ └─ linux/arm64 1ab6fc68586e 13.6MB 4.09MB ✔ <untagged> b3e87f642f5c 13.6MB 4.09MB └─ linux/arm64 1ab6fc68586e 13.6MB 4.09MB docker-cli-dev:latest f5f0547476ee 762MB 179MB ✔ └─ linux/arm64 18ca7881145d 762MB 179MB ✔ nginx:alpine 2140dad235c1 76.7MB 21.5MB ├─ linux/arm64/v8 d1f949a77b81 76.7MB 21.5MB ├─ linux/amd64 ae136e431e76 0B 0B ├─ linux/arm/v6 ae1ee4b63c14 0B 0B ├─ linux/arm/v7 20ad73eca911 0B 0B ├─ linux/386 1e69bfb21757 0B 0B ├─ linux/ppc64le 7fef8bcf8b6c 0B 0B └─ linux/s390x 8c310bf29cfa 0B 0B alpine:latest beefdbd8a1da 24.2MB 7.46MB ├─ linux/riscv64 80cde017a105 10.6MB 3.37MB ├─ linux/arm64/v8 9cee2b382fe2 13.6MB 4.09MB ├─ linux/amd64 33735bd63cf8 0B 0B ├─ linux/arm/v6 50f635c8b04d 0B 0B ├─ linux/arm/v7 f2f82d424957 0B 0B ├─ linux/386 b3e87f642f5c 0B 0B ├─ linux/ppc64le c7a6800e3dc5 0B 0B └─ linux/s390x 2b5b26e09ca2 0B 0B With this patch: $ docker image ls --tree IMAGE ID DISK USAGE CONTENT SIZE USED alpine:latest beefdbd8a1da 24.2MB 7.46MB ├─ linux/riscv64 80cde017a105 10.6MB 3.37MB ├─ linux/arm64/v8 9cee2b382fe2 13.6MB 4.09MB ├─ linux/amd64 33735bd63cf8 0B 0B ├─ linux/arm/v6 50f635c8b04d 0B 0B ├─ linux/arm/v7 f2f82d424957 0B 0B ├─ linux/386 b3e87f642f5c 0B 0B ├─ linux/ppc64le c7a6800e3dc5 0B 0B └─ linux/s390x 2b5b26e09ca2 0B 0B docker-cli-dev:latest f5f0547476ee 762MB 179MB ✔ └─ linux/arm64 18ca7881145d 762MB 179MB ✔ nginx:alpine 2140dad235c1 76.7MB 21.5MB ├─ linux/arm64/v8 d1f949a77b81 76.7MB 21.5MB ├─ linux/amd64 ae136e431e76 0B 0B ├─ linux/arm/v6 ae1ee4b63c14 0B 0B ├─ linux/arm/v7 20ad73eca911 0B 0B ├─ linux/386 1e69bfb21757 0B 0B ├─ linux/ppc64le 7fef8bcf8b6c 0B 0B └─ linux/s390x 8c310bf29cfa 0B 0B <untagged> 20ad73eca911 13.6MB 4.09MB ✔ └─ linux/arm64 1ab6fc68586e 13.6MB 4.09MB ✔ <untagged> b3e87f642f5c 13.6MB 4.09MB └─ linux/arm64 1ab6fc68586e 13.6MB 4.09MB Signed-off-by: Sebastiaan van Stijn <[email protected]>
thaJeztah
added
status/1-design-review
area/ux
containerd-integration
Issues and PRs related to containerd integration
labels
Oct 20, 2024
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #5561 +/- ##
==========================================
- Coverage 59.57% 59.14% -0.44%
==========================================
Files 345 342 -3
Lines 29088 29100 +12
==========================================
- Hits 17330 17211 -119
- Misses 10788 10917 +129
- Partials 970 972 +2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area/ux
containerd-integration
Issues and PRs related to containerd integration
status/1-design-review
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
docker image ls
anddocker image ls --tree
for multi-platform #5560image ls --tree: order images alphabetically
The tree output currently uses the same sort order as the existing
non-tree output, and orders the images by "created" time in descending
order;
However, the
--tree
view does not have aCREATED
column, which makesthe output order seem "random". With the tree view being more verbose,
it may also be harder to find back images in the list when they're not sorted
in an easy to discover way.
This patch changes the sort order:
to the user, and should not be "polluting" th top of the list.
date (descending) to get a stable order.
Before this patch:
With this patch:
- Description for the changelog
- A picture of a cute animal (not mandatory but encouraged)