spiegel_podman/cmd/podman
Giuseppe Scrivano 72382a12a7
rootless: use a single user namespace
simplify the rootless implementation to use a single user namespace
for all the running containers.

This makes the rootless implementation behave more like root Podman,
where each container is created in the host environment.

There are multiple advantages to it: 1) much simpler implementation as
there is only one namespace to join.  2) we can join namespaces owned
by different containers.  3) commands like ps won't be limited to what
container they can access as previously we either had access to the
storage from a new namespace or access to /proc when running from the
host.  4) rootless varlink works.  5) there are only two ways to enter
in a namespace, either by creating a new one if no containers are
running or joining the existing one from any container.

Containers created by older Podman versions must be restarted.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-01 15:32:58 +02:00
..
cliconfig Add watch mode to podman ps 2019-03-28 08:34:27 -05:00
imagefilters Support filter image by reference to the repo name 2019-03-04 20:39:47 -05:00
libpodruntime libpod: allow to configure path to the network-cmd binary 2019-03-11 09:29:04 +01:00
shared rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
varlink fix bug remote-podman images --digests 2019-03-27 23:09:35 -04:00
attach.go Usage messages: deduplicate '(default true)' et al 2019-03-13 16:34:31 -06:00
build.go build: fix build DIR -t TAG 2019-03-15 10:39:17 +01:00
checkpoint.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
cleanup.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
commands.go system df to show podman disk usage 2019-03-25 15:05:26 -04:00
commands_remoteclient.go Merge pull request #2442 from baude/remotepodtop 2019-03-06 12:24:13 -08:00
commit.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
common.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
common_test.go Remove urfave/cli from libpod 2019-02-11 17:48:34 -06:00
container.go display logs for multiple containers at the same time 2019-03-15 13:41:01 -05:00
containers_prune.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
cp.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
create.go rootless: remove SkipStorageSetup() 2019-04-01 13:24:04 +02:00
diff.go move formats pkg to and vendor from buildah 2019-03-11 14:44:59 -04:00
errors.go Support podman-remote stop container(s) 2019-03-02 08:57:20 -07:00
errors_remote.go Support podman-remote stop container(s) 2019-03-02 08:57:20 -07:00
events.go Add 'podman events' to podman(1) 2019-03-13 10:22:10 -06:00
exec.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
exists.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
export.go rootless: remove SkipStorageSetup() 2019-04-01 13:24:04 +02:00
generate.go More cleanup for failures on missing commands. 2019-03-08 07:06:50 -05:00
generate_kube.go podman umount: error out if called with no args 2019-03-18 14:05:17 -06:00
healthcheck.go More cleanup for failures on missing commands. 2019-03-08 07:06:50 -05:00
healthcheck_run.go healtcheck phase 2 2019-03-12 14:29:18 -05:00
history.go move formats pkg to and vendor from buildah 2019-03-11 14:44:59 -04:00
image.go Merge pull request #1642 from kunalkushwaha/image-tree 2019-03-14 09:53:49 -07:00
images.go move formats pkg to and vendor from buildah 2019-03-11 14:44:59 -04:00
images_prune.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
import.go preparation for remote-client create container 2019-03-11 09:42:22 -05:00
info.go move formats pkg to and vendor from buildah 2019-03-11 14:44:59 -04:00
inspect.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
kill.go rootless: remove SkipStorageSetup() 2019-04-01 13:24:04 +02:00
load.go Cleanup messages on podman load 2019-03-18 12:23:41 -04:00
login.go Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
logout.go Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
logs.go display logs for multiple containers at the same time 2019-03-15 13:41:01 -05:00
main.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
mount.go rootless: remove SkipStorageSetup() 2019-04-01 13:24:04 +02:00
pause.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
platform_linux.go Add darwin support for remote-client 2019-01-11 11:30:28 -06:00
platform_unsupported.go Add darwin support for remote-client 2019-01-11 11:30:28 -06:00
play.go More cleanup for failures on missing commands. 2019-03-08 07:06:50 -05:00
play_kube.go Merge pull request #2635 from rhatdan/cache 2019-03-29 07:59:04 -07:00
pod.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
pod_create.go preparation for remote-client create container 2019-03-11 09:42:22 -05:00
pod_inspect.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
pod_kill.go rootless: remove SkipStorageSetup() 2019-04-01 13:24:04 +02:00
pod_pause.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
pod_ps.go move formats pkg to and vendor from buildah 2019-03-11 14:44:59 -04:00
pod_restart.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
pod_rm.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
pod_start.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
pod_stats.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
pod_stop.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
pod_top.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
pod_unpause.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
port.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
ps.go rootless: remove SkipStorageSetup() 2019-04-01 13:24:04 +02:00
pull.go Cleanup image2 -> image for imports 2019-03-29 08:27:47 -04:00
push.go Usage messages: deduplicate '(default true)' et al 2019-03-13 16:34:31 -06:00
README.md Update Podman-specific readme 2018-05-11 15:32:27 +00:00
refresh.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
restart.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
restore.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
rm.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
rmi.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
run.go rootless: remove SkipStorageSetup() 2019-04-01 13:24:04 +02:00
run_test.go preparation for remote-client create container 2019-03-11 09:42:22 -05:00
runlabel.go Merge pull request #2595 from jwhonce/bug/1677908 2019-03-15 10:52:57 -07:00
save.go save-load-export: clear cli-parsing default 2019-03-14 12:15:45 -06:00
search.go display logs for multiple containers at the same time 2019-03-15 13:41:01 -05:00
sign.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
sigproxy.go switch projectatomic to containers 2018-08-16 17:12:36 +00:00
start.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
stats.go move formats pkg to and vendor from buildah 2019-03-11 14:44:59 -04:00
stop.go rootless: remove SkipStorageSetup() 2019-04-01 13:24:04 +02:00
system.go More cleanup for failures on missing commands. 2019-03-08 07:06:50 -05:00
system_df.go Merge pull request #2773 from QiWang19/bug 2019-03-28 09:21:48 -07:00
system_prune.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
system_renumber.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
tag.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
top.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
tree.go podman image tree: fix usage message 2019-03-16 08:09:35 -06:00
trust.go More cleanup for failures on missing commands. 2019-03-08 07:06:50 -05:00
trust_set_show.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
umount.go podman umount: error out if called with no args 2019-03-18 14:05:17 -06:00
unpause.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
utils.go utils: drop dead function 2019-03-21 20:14:40 +01:00
varlink.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
varlink_dummy.go Only build varlink when buildtag is available 2019-02-12 15:53:19 -06:00
version.go support GO template {{ json . }} 2019-03-18 13:46:35 -05:00
volume.go More cleanup for failures on missing commands. 2019-03-08 07:06:50 -05:00
volume_create.go preparation for remote-client create container 2019-03-11 09:42:22 -05:00
volume_inspect.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
volume_ls.go move formats pkg to and vendor from buildah 2019-03-11 14:44:59 -04:00
volume_prune.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
volume_rm.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00
wait.go Fix help commands to show short and long description. 2019-03-07 13:46:59 -05:00

podman - Simple debugging tool for pods and images

podman is a daemonless container runtime for managing containers, pods, and container images. It is intended as a counterpart to CRI-O, to provide low-level debugging not available through the CRI interface used by Kubernetes. It can also act as a container runtime independent of CRI-O, creating and managing its own set of containers.

Use cases

  1. Create containers
  2. Start, stop, signal, attach to, and inspect existing containers
  3. Run new commands in existing containers
  4. Push and pull images
  5. List and inspect existing images
  6. Create new images by committing changes within a container
  7. Create pods
  8. Start, stop, signal, and inspect existing pods
  9. Populate pods with containers