Files
podman/docs/source/Commands.rst
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

117 lines
4.1 KiB
ReStructuredText

.. include:: includes.rst
Commands
========
:doc:`Podman <markdown/podman.1>` (Pod Manager) Global Options, Environment Variables, Exit Codes, Configuration Files, and more
:doc:`attach <markdown/podman-attach.1>` Attach to a running container
:doc:`auto-update <markdown/podman-auto-update.1>` Auto update containers according to their auto-update policy
:doc:`build <markdown/podman-build.1>` Build an image using instructions from Containerfiles
:doc:`commit <markdown/podman-commit.1>` Create new image based on the changed container
:doc:`container <managecontainers>` Manage Containers
:doc:`cp <markdown/podman-cp.1>` Copy files/folders between a container and the local filesystem
:doc:`create <markdown/podman-create.1>` Create but do not start a container
:doc:`diff <markdown/podman-diff.1>` Inspect changes on container's file systems
:doc:`events <markdown/podman-events.1>` Show podman events
:doc:`exec <markdown/podman-exec.1>` Run a process in a running container
:doc:`export <markdown/podman-export.1>` Export container's filesystem contents as a tar archive
:doc:`generate <generate>` Generated structured data
:doc:`healthcheck <healthcheck>` Manage Healthcheck
:doc:`history <markdown/podman-history.1>` Show history of a specified image
:doc:`image <image>` Manage images
:doc:`images <markdown/podman-images.1>` List images in local storage
:doc:`import <markdown/podman-import.1>` Import a tarball to create a filesystem image
:doc:`info <markdown/podman-info.1>` Display podman system information
:doc:`init <markdown/podman-init.1>` Initialize one or more containers
:doc:`inspect <markdown/podman-inspect.1>` Display the configuration of a container or image
:doc:`kill <markdown/podman-kill.1>` Kill one or more running containers with a specific signal
:doc:`load <markdown/podman-load.1>` Load an image from container archive
:doc:`login <markdown/podman-login.1>` Login to a container registry
:doc:`logout <markdown/podman-logout.1>` Logout of a container registry
:doc:`logs <markdown/podman-logs.1>` Fetch the logs of a container
:doc:`manifest <manifest>` Create and manipulate manifest lists and image indexes
:doc:`mount <markdown/podman-mount.1>` Mount a working container's root filesystem
:doc:`network <network>` Manage Networks
:doc:`pause <markdown/podman-pause.1>` Pause all the processes in one or more containers
:doc:`play <play>` Play a pod
:doc:`pod <pod>` Manage pods
:doc:`port <markdown/podman-port.1>` List port mappings or a specific mapping for the container
:doc:`ps <markdown/podman-ps.1>` List containers
:doc:`pull <markdown/podman-pull.1>` Pull an image from a registry
:doc:`push <markdown/podman-push.1>` Push an image to a specified destination
:doc:`rename <markdown/podman-rename.1>` Rename an existing container
:doc:`restart <markdown/podman-restart.1>` Restart one or more containers
:doc:`rm <markdown/podman-rm.1>` Remove one or more containers
:doc:`rmi <markdown/podman-rmi.1>` Removes one or more images from local storage
:doc:`run <markdown/podman-run.1>` Run a command in a new container
:doc:`save <markdown/podman-save.1>` Save image to an archive
:doc:`search <markdown/podman-search.1>` Search registry for image
:doc:`start <markdown/podman-start.1>` Start one or more containers
:doc:`stats <markdown/podman-stats.1>` Display a live stream of container resource usage statistics
:doc:`stop <markdown/podman-stop.1>` Stop one or more containers
:doc:`system <system>` Manage podman
:doc:`tag <markdown/podman-tag.1>` Add an additional name to a local image
:doc:`top <markdown/podman-top.1>` Display the running processes of a container
:doc:`unmount <markdown/podman-unmount.1>` Unmounts working container's root filesystem
:doc:`unpause <markdown/podman-unpause.1>` Unpause the processes in one or more containers
:doc:`unshare <markdown/podman-unshare.1>` Run a command in a modified user namespace
:doc:`untag <markdown/podman-untag.1>` Removes one or more names from a locally-stored image
:doc:`version <markdown/podman-version.1>` Display the Podman Version Information
:doc:`volume <volume>` Manage volumes
:doc:`wait <markdown/podman-wait.1>` Block on one or more containers