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 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.