spiegel_podman/docs/source
Matthew Heon 997de2f8e9 Initial implementation of renaming containers
Basic theory: We remove the container, but *only from the DB*.
We leave it in c/storage, we leave the lock allocated, we leave
it running (if it is). Then we create an identical container with
an altered name, and add that back to the database. Theoretically
we now have a renamed container.

The advantage of this approach is that it doesn't just apply to
rename - we can use this to make *any* configuration change to a
container that does not alter its container ID.

Potential problems are numerous. This process is *THOROUGHLY*
non-atomic at present - if you `kill -9` Podman mid-rename things
will be in a bad place, for example. Also, we can't rename
containers that can't be removed normally - IE, containers with
dependencies (pod infra containers, for example).

The largest potential improvement will be to move the majority of
the work into the DB, with a `RecreateContainer()` method - that
will add atomicity, and let us remove the container without
worrying about depencies and similar issues.

Potential problems: long-running processes that edit the DB and
may have an older version of the configuration around. Most
notable example is `podman run --rm` - the removal command needed
to be manually edited to avoid this one. This begins to get at
the heart of me not wanting to do this in the first place...

This provides CLI and API implementations for frontend, but no
tunnel implementation. It will be added in a future release (just
held back for time now - we need this in 3.0 and are running low
on time).

This is honestly kind of horrifying, but I think it will work.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2021-01-14 18:29:28 -05:00
..
_static sort api endpoints in documentation 2020-12-24 09:52:01 -06:00
markdown Initial implementation of renaming containers 2021-01-14 18:29:28 -05:00
Commands.rst Initial implementation of renaming containers 2021-01-14 18:29:28 -05:00
conf.py squash 2020-11-25 18:27:31 +01:00
connection.rst Add missing pages for docs.podman.io 2020-08-10 19:35:23 -04:00
generate.rst Update document formatting and packaging code 2019-10-31 12:31:39 -05:00
healthcheck.rst Update document formatting and packaging code 2019-10-31 12:31:39 -05:00
image.rst Cross-reference *.rst files too 2020-08-11 08:03:37 -06:00
includes.rst Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
index.rst Add missing pages for docs.podman.io 2020-08-10 19:35:23 -04:00
Introduction.rst Fix documentation link and typo 2020-10-09 12:58:16 +03:00
managecontainers.rst Initial implementation of renaming containers 2021-01-14 18:29:28 -05:00
manifest.rst Add missing pages for docs.podman.io 2020-08-10 19:35:23 -04:00
network.rst Implement pod-network-reload 2020-12-07 19:26:23 +01:00
play.rst Update document formatting and packaging code 2019-10-31 12:31:39 -05:00
pod.rst Remove containers when pruning a stopped pod. 2019-11-26 13:19:31 -05:00
Reference.rst [CI:DOCS] Docs revamp. 2020-05-21 17:16:10 -04:00
Search.rst [CI:DOCS] Docs revamp. 2020-05-21 17:16:10 -04:00
system.rst Cross-reference *.rst files too 2020-08-11 08:03:37 -06:00
Tutorials.rst squash 2020-11-25 18:27:31 +01:00
volume.rst Enable pre-commit tool linting 2020-01-14 13:42:59 +00:00