mirror of
https://github.com/containers/podman.git
synced 2025-11-30 01:58:46 +08:00
Merge pull request #27376 from codynguyen-dev/docs-mount-section
docs: expand --mount section with detailed type descriptions (#25888)
This commit is contained in:
@@ -647,12 +647,83 @@ Using **--mount** flags to mount a host directory as a container folder, specify
|
|||||||
the absolute path to the directory or the volume name, and the absolute path
|
the absolute path to the directory or the volume name, and the absolute path
|
||||||
within the container directory:
|
within the container directory:
|
||||||
|
|
||||||
|
|
||||||
````
|
````
|
||||||
$ podman run --mount type=bind,src=/var/db,target=/data1 busybox sh
|
$ podman run --mount type=bind,src=/var/db,target=/data1 busybox sh
|
||||||
|
|
||||||
$ podman run --mount type=bind,src=volume-name,target=/data1 busybox sh
|
$ podman run --mount type=bind,src=volume-name,target=/data1 busybox sh
|
||||||
````
|
````
|
||||||
|
|
||||||
|
The **--mount** flag provides a structured, key-value style for defining mounts
|
||||||
|
inside containers. It is similar in purpose to **-v** or **--volume**, but offers
|
||||||
|
greater clarity for complex or multi-option configurations. The general syntax
|
||||||
|
is:
|
||||||
|
|
||||||
|
```
|
||||||
|
--mount type=<TYPE>,src=<SOURCE>,dst=<TARGET>[,options...]
|
||||||
|
```
|
||||||
|
|
||||||
|
Supported mount types include **bind**, **volume**, **tmpfs**, **artifact**,
|
||||||
|
**devpts**, **image**, **glob**, and **ramfs**. Each type serves a different
|
||||||
|
purpose in how data is attached to the container.
|
||||||
|
|
||||||
|
#### Bind mounts
|
||||||
|
|
||||||
|
Bind mounts directly link a directory or file on the host into the container.
|
||||||
|
Changes made in one are immediately visible in the other. Use bind mounts when
|
||||||
|
both the host and container need access to the same files, such as configuration
|
||||||
|
files or source code.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```
|
||||||
|
podman run --mount type=bind,src=/etc/config,dst=/app/config alpine cat /app/config/file.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Volume mounts
|
||||||
|
|
||||||
|
Volume mounts use Podman-managed named volumes that persist independently of
|
||||||
|
containers. They are ideal for persistent data such as databases or logs and are
|
||||||
|
isolated from direct host paths.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```
|
||||||
|
podman volume create mydata
|
||||||
|
podman run --mount type=volume,src=mydata,dst=/var/lib/data postgres
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Tmpfs mounts
|
||||||
|
|
||||||
|
A tmpfs mount creates an in-memory filesystem on the host that is mounted inside
|
||||||
|
the container. Data stored here is temporary and removed when the container
|
||||||
|
stops or the host reboots. tmpfs mounts are useful for temporary caches or
|
||||||
|
sensitive data that should not persist to disk.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```
|
||||||
|
podman run --mount type=tmpfs,dst=/cache,tmpfs-size=64m alpine
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Artifact, devpts, image, glob, and ramfs mounts
|
||||||
|
|
||||||
|
Other specialized mount types are available for advanced use cases:
|
||||||
|
|
||||||
|
- **artifact** - Mounts read-only content from a container image or artifact.
|
||||||
|
- **devpts** - Provides a pseudo-terminal device inside the container.
|
||||||
|
- **image** - Mounts files directly from another container image.
|
||||||
|
- **glob** - Mounts multiple host files matching a glob pattern.
|
||||||
|
- **ramfs** - Similar to tmpfs but backed directly by system RAM without size limits.
|
||||||
|
|
||||||
|
These mount types are less commonly used and often appear in internal or
|
||||||
|
advanced Podman workflows.
|
||||||
|
|
||||||
|
In summary, **--mount** provides a single consistent interface for connecting
|
||||||
|
external storage to containers. Choose the mount type that best fits your use
|
||||||
|
case: **bind** for direct host access, **volume** for persistent data managed by
|
||||||
|
Podman, and **tmpfs** for ephemeral in-memory storage.
|
||||||
|
|
||||||
When using SELinux, be aware that the host has no knowledge of container SELinux
|
When using SELinux, be aware that the host has no knowledge of container SELinux
|
||||||
policy. Therefore, in the above example, if SELinux policy is enforced, the
|
policy. Therefore, in the above example, if SELinux policy is enforced, the
|
||||||
_/var/db_ directory is not writable to the container. A "Permission Denied"
|
_/var/db_ directory is not writable to the container. A "Permission Denied"
|
||||||
|
|||||||
Reference in New Issue
Block a user