If you're new to Mesos
See the getting started page for more information about downloading, building, and deploying Mesos.
If you'd like to get involved or you're looking for support
See our community page for more details.
Container Volumes
For each volume a container specifies (i.e., ContainerInfo.volumes
),
the following fields must be specified:
container_path
: Path in the container filesystem at which the volume will be mounted. If the path is a relative path, it is relative to the container’s sandbox.mode
: If the volume is read-only or read-write.source
: Describe where the volume originates from. See more details in the following section.
Volume Source Types
HOST_PATH Volume Source
This volume source represents a path on the host filesystem. The path can either point to a directory or a file (either a regular file or a device file).
The following example shows a HOST_PATH
volume that mounts
/var/lib/mysql
on the host filesystem to the same location in the
container.
{
"container_path": "/var/lib/mysql",
"mode": "RW",
"source": {
"type": "HOST_PATH",
"host_path": {
"path": "/var/lib/mysql"
}
}
}
The mode and ownership of the volume will be the same as that on the host filesystem.
If you are using the Mesos Containerizer,
HOST_PATH
volumes are handled by the volume/host_path
isolator. To
enable this isolator, append volume/host_path
to the --isolation
flag when starting the agent. This isolator depends on the
filesystem/linux
isolator.
Docker Containerizer supports HOST_PATH
volume as well.
SANDBOX_PATH Volume Source
There are currently two types of SANDBOX_PATH
volume sources:
SELF
and PARENT
.
If you are using Mesos Containerizer,
SANDBOX_PATH
volumes are handled by the volume/sandbox_path
isolator. To enable this isolator, append volume/sandbox_path
to
the --isolation
flag when starting the agent.
The Docker Containerizer only supports
SELF
type SANDBOX_PATH
volumes currently.
SELF
Type
This represents a path in the container’s own sandbox. The path can point to either a directory or a file in the sandbox of the container.
The following example shows a SANDBOX_PATH
volume from the
container’s own sandbox that mount the subdirectory tmp
in the
sandbox to /tmp
in the container root filesystem. This will be
useful to cap the /tmp
usage in the container (if disk isolator is
used and --enforce_container_disk_quota
is turned on).
{
"container_path": "/tmp",
"mode": "RW",
"source": {
"type": "SANDBOX_PATH",
"sandbox_path": {
"type": "SELF",
"path": "tmp"
}
}
}
The ownership of the volume will be the same as that of the sandbox of the container.
Note that container_path
has to be an absolute path in this case. If
container_path
is relative, that means it’s a volume from a
subdirectory in the container sandbox to another subdirectory in the
container sandbox. In that case, the user can just create a symlink,
instead of using a volume.
PARENT Type
This represents a path in the sandbox of the parent container. The path can point to either a directory or a file in the sandbox of the parent container. See the nested container doc for more details about what a parent container is.
The following example shows a SANDBOX_PATH
volume from the sandbox
of the parent container that mounts the subdirectory shared_volume
in
the sandbox of the parent container to subdirectory volume
in the
sandbox of the container.
{
"container_path": "volume",
"mode": "RW",
"source": {
"type": "SANDBOX_PATH",
"sandbox_path": {
"type": "PARENT",
"path": "shared_volume"
}
}
}
The ownership of the volume will be the same as that of the sandbox of the parent container.
DOCKER_VOLUME Volume Source
See more details in this doc.
SECRET Volume Source
See more details in this doc.