automation-tests/storage/cmd/containers-storage
Giuseppe Scrivano 5a999561b8 chunked: rename GetDiffer to NewDiffer
it is an explicit API breaking change, so that cannot be used by old
users (e.g. an older containers/image version) that are not ported to
support the new semantic that only one ApplyDiffWithDiffer call is
supported for one differ object.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2025-05-07 08:52:19 +02:00
..
README.md Rename CLI from oci-storage to containers-storage 2017-05-25 15:50:33 -04:00
check.go Initial implementation of consistency checks 2023-04-13 10:38:24 -04:00
config.go Disable partial pulls (zstd:chunked) by default 2024-11-04 13:52:48 -05:00
container.go Format sources with gofumpt 2023-05-26 16:17:31 -07:00
containers.go test helper: maxArgs = 0 is actually a meaningful value 2023-01-27 09:21:43 -05:00
copy.go cmd/containers-storage: use strings.Cut 2024-09-19 17:03:22 -07:00
create.go Fix missing newline from stdout of create-container command 2024-02-16 05:23:28 -05:00
dedup.go containers-storage: new command 'dedup' 2024-12-09 16:41:59 +01:00
delete.go test helper: maxArgs = 0 is actually a meaningful value 2023-01-27 09:21:43 -05:00
diff.go chunked: rename GetDiffer to NewDiffer 2025-05-07 08:52:19 +02:00
exists.go test helper: maxArgs = 0 is actually a meaningful value 2023-01-27 09:21:43 -05:00
gc.go cmd: add a CLI wrapper for GarbageCollect 2023-01-26 16:09:00 -05:00
image.go Store: add ImageDirectory() and ImageRunDirectory() 2024-01-23 14:35:01 -05:00
images.go Format sources with gofumpt 2023-05-26 16:17:31 -07:00
layer.go Format sources with gofumpt 2023-05-26 16:17:31 -07:00
layers.go Remove unneeded conversion 2025-04-01 16:18:43 -07:00
main.go Merge pull request #2306 from kolyshkin/modernize 2025-04-01 22:00:08 +00:00
metadata.go test helper: maxArgs = 0 is actually a meaningful value 2023-01-27 09:21:43 -05:00
mount.go cmd: drop args to MountImage to use with vfs 2025-03-25 15:49:02 +01:00
name.go Complete "pulling up" of images in updateNames() 2023-03-31 10:36:30 -04:00
shutdown.go Format sources with gofumpt 2023-05-26 16:17:31 -07:00
status.go test helper: maxArgs = 0 is actually a meaningful value 2023-01-27 09:21:43 -05:00
tree.go Format sources with gofumpt 2023-05-26 16:17:31 -07:00
tree_test.go Work around a paralleltest crash 2022-10-14 17:17:53 +02:00
unshare.go Test helper: add "unshare"/"create-storage-layer"/"storage-layers" 2023-04-10 10:23:23 -04:00
version.go test helper: maxArgs = 0 is actually a meaningful value 2023-01-27 09:21:43 -05:00
wipe.go test helper: maxArgs = 0 is actually a meaningful value 2023-01-27 09:21:43 -05:00

README.md

This is containers-storage, a command line tool for manipulating local layer/image/container stores.

It depends on storage, which is a pretty barebones wrapping of the graph drivers that exposes the create/mount/unmount/delete operations and adds enough bookkeeping to know about the relationships between layers.

On top of that, storage provides a notion of a reference to a layer which is paired with arbitrary user data (i.e., an image, that data being history, configuration, and other metadata). It also provides a notion of a type of layer, which is typically the child of an image's topmost layer, to which arbitrary data is directly attached (i.e., a container, where the data is typically configuration).

Layers, images, and containers are each identified using IDs which can be set when they are created (if not set, random values are generated), and can optionally be assigned names which are resolved to IDs automatically by the various APIs.

The containers-storage tool is a CLI that wraps that as thinly as possible, so that other tooling can use it to import layers from images. Those other tools can then either manage the concept of images on their own, or let the API/CLI handle storing the image metadata and/or configuration. Likewise, other tools can create container layers and manage them on their own or use the API/CLI for storing what I assume will be container metadata and/or configurations.

Logic for importing images and creating and managing containers will most likely be implemented elsewhere, and if that implementation ends up not needing the API/CLI to provide a place to store data about images and containers, that functionality can be dropped.