mirror of
https://github.com/containers/podman.git
synced 2025-05-22 09:36:57 +08:00

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>
117 lines
4.1 KiB
ReStructuredText
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
|