podman/libpod
Matthew Heon 0d623914d0 Add support for anonymous volumes to podman run -v
Previously, when `podman run` encountered a volume mount without
separate source and destination (e.g. `-v /run`) we would assume
that both were the same - a bind mount of `/run` on the host to
`/run` in the container. However, this does not match Docker's
behavior - in Docker, this makes an anonymous named volume that
will be mounted at `/run`.

We already have (more limited) support for these anonymous
volumes in the form of image volumes. Extend this support to
allow it to be used with user-created volumes coming in from the
`-v` flag.

This change also affects how named volumes created by the
container but given names are treated by `podman run --rm` and
`podman rm -v`. Previously, they would be removed with the
container in these cases, but this did not match Docker's
behaviour. Docker only removed anonymous volumes. With this patch
we move to that model as well; `podman run -v testvol:/test` will
not have `testvol` survive the container being removed by `podman
rm -v`.

The sum total of these changes let us turn on volume removal in
`--rm` by default.

Fixes: #4276

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-10-17 13:18:17 -04:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
define Ensure volumes can be removed when they fail to unmount 2019-10-14 10:32:15 -04:00
driver removMergeDir from inspect result if not mounted 2019-08-13 15:13:20 -04:00
events performance fix for podman events with large journalds 2019-08-14 09:30:12 -05:00
image Update c/image to v4.0.1 and buildah to 1.11.3 2019-10-04 20:18:23 +02:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
lock trivial cleanups from golang 2019-07-03 15:41:33 -05:00
logs golangci-lint pass number 2 2019-07-11 09:13:06 -05:00
boltdb_state.go refresh: do not access network ns if not in the namespace 2019-10-09 15:49:11 +02:00
boltdb_state_internal.go Add a MissingRuntime implementation 2019-10-15 15:59:20 -04:00
boltdb_state_linux.go podman-remote inspect 2019-01-18 15:43:11 -06:00
boltdb_state_unsupported.go podman-remote inspect 2019-01-18 15:43:11 -06:00
common_test.go code cleanup 2019-07-08 09:18:11 -05:00
container.go Move OCI runtime implementation behind an interface 2019-10-10 10:19:32 -04:00
container.log.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_api.go Add a MissingRuntime implementation 2019-10-15 15:59:20 -04:00
container_commit.go Move OCI runtime implementation behind an interface 2019-10-10 10:19:32 -04:00
container_graph.go generate systemd: support pods and geneartig files 2019-08-21 17:28:30 +02:00
container_graph_test.go generate systemd: support pods and geneartig files 2019-08-21 17:28:30 +02:00
container_inspect.go inspect: rename ImageID go field to Image 2019-10-15 12:16:47 +02:00
container_internal.go Add a MissingRuntime implementation 2019-10-15 15:59:20 -04:00
container_internal_linux.go When restoring containers, reset cgroup path 2019-10-10 14:53:29 -04:00
container_internal_test.go Potentially breaking: Make hooks sort order locale-independent 2019-04-09 21:08:44 +02:00
container_internal_unsupported.go When restoring containers, reset cgroup path 2019-10-10 14:53:29 -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_linux.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_log_unsupported.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_top_linux.go Add support for launching containers without CGroups 2019-09-10 10:52:37 -04:00
container_top_unsupported.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_unsupported.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
diff.go Add function to get a filtered tarstream diff 2019-07-11 14:43:34 +02:00
events.go get last container event 2019-07-07 08:54:20 -05:00
healthcheck.go Move OCI runtime implementation behind an interface 2019-10-10 10:19:32 -04:00
healthcheck_linux.go golangci-lint pass number 2 2019-07-11 09:13:06 -05:00
healthcheck_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
in_memory_state.go rm: add containers eviction with rm --force 2019-09-25 19:44:38 +02:00
info.go Merge pull request #4220 from mheon/null_runtime 2019-10-11 20:55:37 +02:00
kube.go Add capability functionality to play kube 2019-08-01 15:47:45 -04:00
mounts_linux.go set root propagation based on volume properties 2018-11-26 13:55:02 +01:00
networking_linux.go rootless v2 cannot collect network stats 2019-10-15 14:09:41 -05:00
networking_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
oci.go Add a MissingRuntime implementation 2019-10-15 15:59:20 -04:00
oci_attach_linux.go Move OCI runtime implementation behind an interface 2019-10-10 10:19:32 -04: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 Implement conmon exec 2019-07-22 15:57:23 -04:00
oci_conmon_linux.go Add a MissingRuntime implementation 2019-10-15 15:59:20 -04:00
oci_conmon_unsupported.go Move OCI runtime implementation behind an interface 2019-10-10 10:19:32 -04:00
oci_missing.go Add a MissingRuntime implementation 2019-10-15 15:59:20 -04:00
oci_util.go Move OCI runtime implementation behind an interface 2019-10-10 10:19:32 -04:00
options.go Migrate can move containers to a new runtime 2019-10-10 10:25:06 -04:00
pod.go Allow customizing pod hostname 2019-08-18 03:48:40 +00:00
pod_api.go Move OCI runtime implementation behind an interface 2019-10-10 10:19:32 -04:00
pod_internal.go remove libpod from main 2019-06-25 13:51:24 -05:00
pod_top_linux.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
pod_top_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime.go Merge pull request #4220 from mheon/null_runtime 2019-10-11 20:55:37 +02:00
runtime_cstorage.go Unwrap errors before comparing them 2019-10-14 13:49:06 -04:00
runtime_ctr.go Add support for anonymous volumes to podman run -v 2019-10-17 13:18:17 -04:00
runtime_img.go Unwrap errors before comparing them 2019-10-14 13:49:06 -04:00
runtime_img_test.go switch projectatomic to containers 2018-08-16 17:12:36 +00:00
runtime_migrate.go Migrate can move containers to a new runtime 2019-10-10 10:25:06 -04:00
runtime_migrate_unsupported.go system: migrate stops the pause process 2019-05-17 20:48:25 +02:00
runtime_pod.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_pod_infra_linux.go rootless: Rearrange setup of rootless containers 2019-09-24 11:01:28 +02:00
runtime_pod_linux.go Fix error message on podman stats on cgroups v1 rootless environments 2019-08-19 07:41:50 -04:00
runtime_pod_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_renumber.go Re-add locks to volumes. 2019-08-28 11:35:00 -04:00
runtime_volume.go Add function for looking up volumes by partial name 2019-09-09 12:06:10 -04:00
runtime_volume_linux.go Ensure volumes can be removed when they fail to unmount 2019-10-14 10:32:15 -04:00
runtime_volume_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
state.go rm: add containers eviction with rm --force 2019-09-25 19:44:38 +02:00
state_test.go rm: add containers eviction with rm --force 2019-09-25 19:44:38 +02:00
stats.go Add support for launching containers without CGroups 2019-09-10 10:52:37 -04:00
stats_config.go changes to allow for darwin compilation 2018-06-29 20:44:09 +00:00
stats_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
storage.go Update c/image to v4.0.1 and buildah to 1.11.3 2019-10-04 20:18:23 +02:00
util.go Return information about mount_program (fuse-overlayfs) 2019-09-06 07:32:42 -04:00
util_linux.go rm: add containers eviction with rm --force 2019-09-25 19:44:38 +02:00
util_test.go Stage3 Image Library 2018-03-14 20:21:31 +00:00
util_unsupported.go rm: add containers eviction with rm --force 2019-09-25 19:44:38 +02:00
volume.go When first mounting any named volume, copy up 2019-09-09 17:17:39 -04:00
volume_inspect.go Fix typos 2019-08-02 15:30:31 -04:00
volume_internal.go When first mounting any named volume, copy up 2019-09-09 17:17:39 -04:00
volume_internal_linux.go Ensure volumes can be removed when they fail to unmount 2019-10-14 10:32:15 -04:00
volume_internal_unsupported.go Add ability for volumes with options to mount/umount 2019-09-05 17:12:27 -04:00