{"id":13416330,"url":"https://github.com/mayflower/docker-ls","last_synced_at":"2025-10-21T04:54:55.947Z","repository":{"id":54660421,"uuid":"52611782","full_name":"mayflower/docker-ls","owner":"mayflower","description":"Tools for browsing and manipulating docker registries.","archived":false,"fork":false,"pushed_at":"2023-08-31T06:44:18.000Z","size":13435,"stargazers_count":457,"open_issues_count":2,"forks_count":67,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-09-15T02:52:00.397Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mayflower.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-26T15:00:56.000Z","updated_at":"2025-09-01T04:48:25.000Z","dependencies_parsed_at":"2024-06-18T20:07:39.594Z","dependency_job_id":"b7894192-068b-4be3-99c5-48e41219ae0b","html_url":"https://github.com/mayflower/docker-ls","commit_stats":{"total_commits":109,"total_committers":10,"mean_commits":10.9,"dds":"0.12844036697247707","last_synced_commit":"bb4b9875d4fd6389e69286afd8b8e263f526a5cd"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/mayflower/docker-ls","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayflower%2Fdocker-ls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayflower%2Fdocker-ls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayflower%2Fdocker-ls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayflower%2Fdocker-ls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mayflower","download_url":"https://codeload.github.com/mayflower/docker-ls/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayflower%2Fdocker-ls/sbom","scorecard":{"id":630373,"data":{"date":"2025-08-11","repo":{"name":"github.com/mayflower/docker-ls","commit":"bb4b9875d4fd6389e69286afd8b8e263f526a5cd"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":2,"reason":"Found 6/29 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build_and_test.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build_and_test.yaml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/mayflower/docker-ls/build_and_test.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build_and_test.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/mayflower/docker-ls/build_and_test.yaml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:2","Warn: containerImage not pinned by hash: Dockerfile:14: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.5.1 not signed: https://api.github.com/repos/mayflower/docker-ls/releases/37398510","Warn: release artifact v0.5.0 not signed: https://api.github.com/repos/mayflower/docker-ls/releases/35013207","Warn: release artifact v0.4.1 not signed: https://api.github.com/repos/mayflower/docker-ls/releases/34816515","Warn: release artifact v0.4.0 not signed: https://api.github.com/repos/mayflower/docker-ls/releases/34789923","Warn: release artifact v0.3.2 not signed: https://api.github.com/repos/mayflower/docker-ls/releases/13189833","Warn: release artifact v0.5.1 does not have provenance: https://api.github.com/repos/mayflower/docker-ls/releases/37398510","Warn: release artifact v0.5.0 does not have provenance: https://api.github.com/repos/mayflower/docker-ls/releases/35013207","Warn: release artifact v0.4.1 does not have provenance: https://api.github.com/repos/mayflower/docker-ls/releases/34816515","Warn: release artifact v0.4.0 does not have provenance: https://api.github.com/repos/mayflower/docker-ls/releases/34789923","Warn: release artifact v0.3.2 does not have provenance: https://api.github.com/repos/mayflower/docker-ls/releases/13189833"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"38 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2024-2912 / GHSA-99pg-grm5-qq3v","Warn: Project is vulnerable to: GHSA-qrqr-3x5j-2xw9","Warn: Project is vulnerable to: GHSA-j249-ghv5-7mxv","Warn: Project is vulnerable to: GHSA-6hwg-w5jg-9c6x","Warn: Project is vulnerable to: GO-2024-2521","Warn: Project is vulnerable to: GO-2024-2500 / GHSA-3fwx-pjgw-3558","Warn: Project is vulnerable to: GO-2024-2913 / GHSA-v994-f8vw-g7j4","Warn: Project is vulnerable to: GO-2024-2914 / GHSA-xmmx-7jpf-fx42","Warn: Project is vulnerable to: GO-2022-0390 / GHSA-2mm7-x5h6-5pvq","Warn: Project is vulnerable to: GO-2022-0985 / GHSA-rc4r-wh2q-q6c4","Warn: Project is vulnerable to: GO-2022-1107 / GHSA-vp35-85q5-9f25","Warn: Project is vulnerable to: GO-2023-1699 / GHSA-232p-vwff-86mp","Warn: Project is vulnerable to: GO-2023-1700 / GHSA-33pg-m6jh-5237","Warn: Project is vulnerable to: GO-2023-1701 / GHSA-6wrf-mxfj-pf5p","Warn: Project is vulnerable to: GHSA-jq35-85cj-fj4p","Warn: Project is vulnerable to: GHSA-mq39-4gv4-mvpx","Warn: Project is vulnerable to: GO-2024-2512 / GHSA-xw73-rw38-6vjc","Warn: Project is vulnerable to: GO-2025-3829 / GHSA-4vq8-7jfc-9cvp","Warn: Project is vulnerable to: GO-2022-0835 / GHSA-gp4j-w3vj-7299","Warn: Project is vulnerable to: GO-2021-0085 / GHSA-fgv8-vj5c-2ppq","Warn: Project is vulnerable to: GO-2021-0087 / GHSA-fh74-hm69-rqjw","Warn: Project is vulnerable to: GO-2022-0396 / GHSA-g54h-m393-cpwq","Warn: Project is vulnerable to: GO-2022-0914 / GHSA-c3xm-pvg7-gh7r","Warn: Project is vulnerable to: GHSA-v95c-p5hm-xq8f","Warn: Project is vulnerable to: GO-2022-0452 / GHSA-f3fp-gc8g-vw66","Warn: Project is vulnerable to: GO-2023-1683 / GHSA-g2j6-57v7-gm8c","Warn: Project is vulnerable to: GO-2023-1682 / GHSA-m8cg-xc2p-r3fc","Warn: Project is vulnerable to: GO-2024-3110 / GHSA-jfvp-7x6p-h2pv","Warn: Project is vulnerable to: GO-2021-0227 / GHSA-3vm4-22fp-5rfm","Warn: Project is vulnerable to: GO-2022-0968 / GHSA-gwc9-m7rh-j2ww","Warn: Project is vulnerable to: GO-2021-0356 / GHSA-8c26-wmh5-6g9v","Warn: Project is vulnerable to: GO-2024-2961","Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2022-0493 / GHSA-p782-xgp4-8hr8","Warn: Project is vulnerable to: GO-2021-0113 / GHSA-ppp9-7jff-5vj2","Warn: Project is vulnerable to: GO-2022-1059 / GHSA-69ch-w2m2-3vjp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T07:44:53.081Z","repository_id":54660421,"created_at":"2025-08-21T07:44:53.081Z","updated_at":"2025-08-21T07:44:53.081Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279433773,"owners_count":26169417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-17T02:00:07.504Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T21:00:57.192Z","updated_at":"2025-10-21T04:54:55.931Z","avatar_url":"https://github.com/mayflower.png","language":"Go","readme":"[![Build Status](https://travis-ci.org/mayflower/docker-ls.svg?branch=master)](https://travis-ci.org/mayflower/docker-ls)\n\n# What is it?\n\nDocker-ls is a set of CLI tools for browsing and manipulating docker registries.\nIn particular, docker-ls can handle authentication and display the sha256 content\ndigests associated with tags.\n\n## What registries are supported\n\nOnly\n[V2 registries](https://github.com/docker/distribution)\nare supported. Both HTTP Basic auth and Docker style\n[token authentication](https://docs.docker.com/registry/spec/auth/token/)\nare supported for authentication.\n\n# Installation\n\nSix ways there are to attain enlightenment.\n\n## Precompiled binaries\n\nJust download precompiled binaries for your platform from\n[GitHub](https://github.com/mayflower/docker-ls/releases).\n\n## MacOS / Homebrew\n\nYou can install `docker-ls` directly from Homebrew:\n\n    brew install docker-ls\n\n## Gentoo / portage\n\n```\nemerge docker-ls\n```\n\n## NixOS\n\n```\nnix-env -iA nixos.docker-ls\n```\n\n## Arch Linux\n\nPackage in the [AUR](https://aur.archlinux.org/packages/docker-ls/) available.\n\n\n## Docker\n\nIf you have Docker installed, you may want to try this option. Clone the\nrepository and do:\n\n    docker build -t docker-ls .\n\nExample of running container:\n\n    $ docker run -it docker-ls docker-ls tags library/consul\n    requesting list . done\n    repository: library/consul\n    tags:\n    - latest\n    - v0.6.4\n\nOr create aliases:\n\n    $ alias docker-ls='docker run -it docker-ls docker-ls'\n    $ alias docker-rm='docker run -it docker-ls docker-rm'\n\nSo you can do:\n\n    $ docker-ls tags library/consul\n    requesting list . done\n    repository: library/consul\n    tags:\n    - latest\n    - v0.6.4\n\nand:\n\n    $ docker-rm | head -n 3\n    usage: docker-rm [options] \u003crepository:reference\u003e\n\n    Delete a tag in a given repository.\n\n## Go get\n\nProvided that you sport an installation of\n[golang](https://golang.org), the latest version from master\ncan be installed via\n\n    go get -d github.com/mayflower/docker-ls/cli/...\n    go generate github.com/mayflower/docker-ls/lib/...\n    go install github.com/mayflower/docker-ls/cli/...\n\nIsn't a simple `go get github.com/mayflower/docker-ls/cli/...` sufficient, you ask?\nIndeed it is, but including the generate step detailed above will encode verbose version information\nin the binaries.\n\n# Usage\n\nDocker-ls contains two CLI tools: `docker-ls` and `docker-rm` .\n\n## docker-ls\n\n`docker-ls` is a browser for docker registries. Output is either encoded as YAML or\nas JSON.\n\nSeveral subcommands are available\n\n * `docker-ls repositories` Obtains a list of repositories on the server.\n   **This is not supported by the official [docker hub](https://hub.docker.com/).**\n * `docker-ls tags` Lists all tags in a a particular repository.\n * `docker-ls tag` Inspect a particular tag. This command displays a condensed version\n   of the corresponding manifest by default, but the `--raw-manifest` option can be\n   used to dump the full manifest. The `--parse-history` option can be used to display\n   the JSON-encoded history within the manifest.\n\n### Authentication and credentials\n\n`docker-ls` supports the following authentication methods:\n\n * \"Classic\" docker registry [token authentication](https://docs.docker.com/registry/spec/auth/).\n   This is the default if credentials are supplied on the command line. If credentials are taken\n   from a previous `docker login`, this is the default unless the credentials contains an identity\n   token.\n * [OAuth2 authentication](https://docs.docker.com/registry/spec/auth/oauth/). This is used if\n   the credentials are taken from a previous `docker login` and contain an identity token.\n * Basic auth. This needs to be requested explicitly on the CLI.\n\nCredentials are automatically taken from a previous `docker login` or specified on the command line.\n`docker-ls` implicitly uses the same\n[credential store and helpers](https://docs.docker.com/engine/reference/commandline/login/#credentials-store)\nused by docker.\n\nLogging into Amazon ECR requires Basic auth, the same goes for Google GCR.\n\n### Important command line flags\n\nThis list is not exhaustive; please consult the command line (`-h`) help for all options.\n\n * `--registry \u003curl\u003e (-r)` Connect to the registry at `\u003curl\u003e`. The URL must include the protocol\n   (http / https). By default, `docker-ls` targets the official\n   [docker hub](https://hub.docker.com/).\n * `--user \u003cuser\u003e (-u)` Username for authentication.\n * `--password \u003cpassword\u003e (-p)` Password for authentication.\n * `--user-agent \u003cagent string\u003e` Use a custom user agent.\n * `--interactive-password(-i)` Read the password from an interactive prompt.\n * `--level \u003cdepth\u003e (-l)` The `repositories` and `tags` subcommands support this option\n   for recursive output. Depths 0 (default) and 1 are supported. Please note\n   recursion means more API requests and may be slow.\n * `--json (-j)` Switch output format from YAML to JSON.\n * `--template (-t)` Use a named golang template from the configuration for output (see below)\n * `--template-source` Use the specified template for output (see below)\n * `--basic-auth` Use HTTP basic auth for authentication (instead of token authentication).\n * `--allow-insecure` Do not validate SSL certificates (useful for registries secured with a\n    self-signed certificate).\n * `--manifest-version` Request either manifest version\n   [V2.1](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-1.md)\n   (`--manifest-version 1` or manifest version [V2.2](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md)\n   (`--manifest-version 2`, default) from the registry. Please note that deleting manifests\n   from registry version \u003e= 2.3 will work **only** with content digests from a V2.2\n   manifest.\n * `--debug` Enable debug output.\n\n   WARNING: This is exactly what the name suggests: debugging output. It contains raw\n   data structures, may include your credentials in verbatim and may or may not help you.\n   Use with care.\n\n### Examples\n\nList all repositories in a custom registry:\n\n    docker-ls repositories --registry https://my.registry.org --user hanni --password hanni123\n\nList all repositories in a custom registry, including their tags:\n\n    docker-ls repositories --registry https://my.registry.org --user hanni --password hanni123 --level 1\n\nList all tags in stuff/busybox using HTTP basic auth\n\n    docker-ls tags --registry https://my.registry.org --user hanni --password hanni123 --basic-auth stuff/busybox\n\nInspect tag stuff/busybox:latest, no authentication, JSON output.\n\n    docker-ls tag --registry https://my.registry.org --json stuff/busybox:latest\n\nInspect tag stuff/busybox:latest, no authentication, dump the raw manifest with parsed\nhistory as JSON.\n\n    docker-ls tag --registry https://my.registry.org --json --raw-manifest --parse-history stuff/busybox:latest\n\n### Notes considering the offical registry\n\nIf no registry is specified, `docker-ls` will target the official registry server\nat `https://index.docker.io`. Please note that:\n\n * The official registry does not support repository listing via `docker-ls repositories`\n * Official repositories must be prefixed with `library/`, e.g. `docker-ls tags library/debian`\n\n## docker-rm\n\n`docker-rm` can delete particular tags. Example:\n\n    docker-rm --registry https://my.registry.org --user someuser --password somepass busybox:sha256:51fef[...]\n\n(the digest has been truncated for brevity). Please consult the command line help\nfor a full list of all arguments.\n\nSome remarks:\n\n * The tag *must* be specified as a sha256 content digest.\n * While tags can be deleted, the current registry implementation will (to the best\n   of my knowledge) not free the space associated with any resulting unused layers\n * Deleting stuff is currently disabled by default in the official registry and needs to be\n   enabled explicitly \u0026mdash; check out this [issue](https://github.com/mayflower/docker-ls/issues/1)\n   for details.\n * Content digests obtained with `--manifest-version 1` will **not work** with\n   registry version \u003e= 2.3.\n * **BE CAREFUL!** The API does not implement undelete :)\n\n## Using a proxy\n\n`docker-ls` supports HTTP / HTTPS proxies configured via the corresponding\ncanonical environment variables. Check out the corresponding\n[documentation](https://golang.org/pkg/net/http/#ProxyFromEnvironment)\nfor details.\n\n## Configuration via config files and environment variables\n\nAll options that can be specified via CLI flags can be read from a config file or from an\nenvironment variables. The priority is CLI flag \u003e environment variable \u003e config file.\n\n### Config files\n\nBy default, both tools try to read\n`~/.docker-ls.[yaml|json|toml|...]`\n(please check the Viper [documentation](https://github.com/spf13/viper)\nfor a full list of the supported formats). The names of the keys in the file\nare the long names of the CLI flags. For example, the following YAML file would configure\nregistry URL and username\n\n    registry: https://foo.bar.com\n    user: foo\n\nOther config files can be specified via the `--config` option.\n\n### Template Output\n\nOutput of the various `docker-ls` subcommands can be further customized by using\n[golang templates](https://golang.org/pkg/text/template/).\n\n#### Predefined templates\n\nNamed templates can be configured in the `templates` section of the configuration file.\nWhen `docker-ls` is invoked, the `-t` parameter (see above) can be used to select a named\ntemplate for formatting the output.\n\n**Example:** The following YAML section defines a template that outputs the list of tags\nin a repository as a simple HTML document.\n\n```\ntemplates:\n  taglist_html: |\n    \u003chead\u003e\u003c/head\u003e\n    \u003cbody\u003e\n        \u003ch1\u003eTags for repository {{ html .Repository }}\u003c/h1\u003e\n        \u003cul\u003e\n            {{- range .Tags }}\n            \u003cli\u003e{{ html . }}\u003c/li\u003e\n            {{- end }}\n        \u003c/ul\u003e\n    \u003c/body\u003e\n```\n\nIt can be invoked by running i.e.\n\n```\ndocker-ls tags -t taglist_html /library/debian\n```\n\n#### Inline templates\n\nSimple templates can also be passed directly on the command line using the `--template-source`\nparameter:\n\n```\ndocker-ls tag --template-source '{{ .TagName }}: {{ .Digest }}'  /library/debian:wheezy\n```\n\n### Template variables\n\nInside templates, all fields of the corresponding JSON / YAML output can be accessed in pipeline\nexpressions. The first letter of all field names is capitalized, with the exception of manifests\nthat are directly returned from the registry by using `docker-ls tag --raw-manifest`: for\nthose, the JSON / YAML field names are unchanged.\n\n### Environment variables\n\nIn addition to config files and CLI flags, environment variables can be used to specify options\nglobally. The name is determined by taking the long CLI name, uppercasing replacing\nhyphens \"-\" with underscores \"\\_\" and prefixing the result with \"DOCKER_LS_\". For example,\nthe following would enable interactive password prompts for all consecutive\ninvocations:\n\n    export DOCKER_LS_INTERACTIVE_PASSWORD=1\n\n## Shell autocompletion\n\nBoth `docker-ls` and `docker-rm` support shell autocompletion for subcommands and\noptions. To enable this, source the output of `docker-ls autocomplete bash|zsh`\nand `docker-rm autocomplete bash|zsh` in the running shell. In case of bash, this can be\nachieved with\n\n    $ source \u003c(docker-ls autocomplete bash)\n\n# License\n\nDocker-ls is distributed under the terms of the MIT license.\n","funding_links":[],"categories":["Container Operations","Dev Tools","Go"],"sub_categories":["User Interface"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayflower%2Fdocker-ls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmayflower%2Fdocker-ls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayflower%2Fdocker-ls/lists"}