spiegel_podman/libpod
Matthew Heon 8e9724524d Ensure that 'rmi --force' evicts Podman containers
The logic for `podman rmi --force` includes a bit of code that
will remove Libpod containers using Libpod's container removal
logic - this ensures that they're cleanly and completely removed.
For other containers (Buildah, CRI-O, etc) we fall back to
manually removing the containers using the image from c/storage.

Unfortunately, our logic for invoking the Podman removal function
had an error, and it did not properly handle cases where we were
force-removing an image with >1 name. Force-removing such images
by ID guarantees their removal, not just an untag of a single
name; our code for identifying whether to remove containers did
not proper detect this case, so we fell through and deleted the
Podman containers as storage containers, leaving traces of them
in the Libpod DB.

Fixes #7153

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-31 11:43:40 -04:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
define Add SystemdMode to inspect for containers 2020-07-22 14:31:26 -04:00
driver removMergeDir from inspect result if not mounted 2019-08-13 15:13:20 -04:00
events Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
filters move go module to v2 2020-07-06 15:52:17 +02:00
image search: allow wildcards 2020-07-15 11:42:04 +02:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode Add podman static build 2020-05-11 13:11:07 +02:00
lock move go module to v2 2020-07-06 15:52:17 +02:00
logs move go module to v2 2020-07-06 15:52:17 +02:00
boltdb_state.go move go module to v2 2020-07-06 15:52:17 +02:00
boltdb_state_internal.go move go module to v2 2020-07-06 15:52:17 +02:00
boltdb_state_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
boltdb_state_unsupported.go podman-remote inspect 2019-01-18 15:43:11 -06:00
common_test.go move go module to v2 2020-07-06 15:52:17 +02:00
container.go move go module to v2 2020-07-06 15:52:17 +02:00
container_api.go log API: add context to allow for cancelling 2020-07-22 14:50:47 -04:00
container_commit.go move go module to v2 2020-07-06 15:52:17 +02:00
container_exec.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
container_graph.go move go module to v2 2020-07-06 15:52:17 +02:00
container_graph_test.go move go module to v2 2020-07-06 15:52:17 +02:00
container_inspect.go Add SystemdMode to inspect for containers 2020-07-22 14:31:26 -04:00
container_internal.go When chowning we should not follow symbolic link 2020-07-31 11:38:20 -04:00
container_internal_linux.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
container_internal_test.go vendor: update seccomp/containers-golang to v0.4.1 2020-05-21 16:16:09 +02:00
container_internal_unsupported.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
container_linux.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_log.go log API: add context to allow for cancelling 2020-07-22 14:50:47 -04:00
container_log_linux.go log API: add context to allow for cancelling 2020-07-22 14:50:47 -04:00
container_log_unsupported.go log API: add context to allow for cancelling 2020-07-22 14:50:47 -04:00
container_top_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
container_top_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00
container_unsupported.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_validate.go move go module to v2 2020-07-06 15:52:17 +02:00
diff.go move go module to v2 2020-07-06 15:52:17 +02:00
events.go fix race condition in libpod.GetEvents(...) 2020-07-07 17:29:14 +02:00
healthcheck.go move go module to v2 2020-07-06 15:52:17 +02:00
healthcheck_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
healthcheck_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00
in_memory_state.go move go module to v2 2020-07-06 15:52:17 +02:00
info.go move go module to v2 2020-07-06 15:52:17 +02:00
kube.go move go module to v2 2020-07-06 15:52:17 +02:00
mounts_linux.go set root propagation based on volume properties 2018-11-26 13:55:02 +01:00
networking_linux.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
networking_unsupported.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
oci.go move go module to v2 2020-07-06 15:52:17 +02:00
oci_attach_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
oci_attach_linux_cgo.go Implement conmon exec 2019-07-22 15:57:23 -04:00
oci_attach_linux_nocgo.go Implement conmon exec 2019-07-22 15:57:23 -04:00
oci_attach_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00
oci_conmon_exec_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
oci_conmon_linux.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
oci_conmon_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00
oci_missing.go move go module to v2 2020-07-06 15:52:17 +02:00
oci_util.go move go module to v2 2020-07-06 15:52:17 +02:00
options.go Fix container and pod create commands for remote create 2020-07-22 14:39:41 -04:00
pod.go move go module to v2 2020-07-06 15:52:17 +02:00
pod_api.go Fix lint 2020-07-22 14:20:14 -04:00
pod_internal.go move go module to v2 2020-07-06 15:52:17 +02:00
pod_status.go move go module to v2 2020-07-06 15:52:17 +02:00
pod_top_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
pod_top_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00
reset.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
runtime_cstorage.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_ctr.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
runtime_img.go Ensure that 'rmi --force' evicts Podman containers 2020-07-31 11:43:40 -04:00
runtime_img_test.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_migrate.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_migrate_unsupported.go Add podman system reset command 2019-11-29 05:34:52 -05:00
runtime_pod.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_pod_infra_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_pod_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_pod_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_renumber.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_volume.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_volume_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
runtime_volume_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00
state.go Add support for containers.conf 2020-03-27 14:36:03 -04:00
state_test.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
stats.go move go module to v2 2020-07-06 15:52:17 +02:00
stats_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00
storage.go Remove all instances of named return "err" from Libpod 2020-07-22 14:47:03 -04:00
util.go Include infra container information in pod inspect 2020-07-22 14:19:50 -04:00
util_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
util_test.go move go module to v2 2020-07-06 15:52:17 +02:00
util_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00
volume.go container: move volume chown after spec generation 2020-07-06 13:31:21 -04:00
volume_inspect.go container: move volume chown after spec generation 2020-07-06 13:31:21 -04:00
volume_internal.go move go module to v2 2020-07-06 15:52:17 +02:00
volume_internal_linux.go move go module to v2 2020-07-06 15:52:17 +02:00
volume_internal_unsupported.go move go module to v2 2020-07-06 15:52:17 +02:00