Skip to content

Commit

Permalink
Change layout of mountpoints and mounts
Browse files Browse the repository at this point in the history
Added info about MountPoints to config.md.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
  • Loading branch information
LK4D4 committed Sep 2, 2015
1 parent 138deee commit aaa314c
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 18 deletions.
19 changes: 19 additions & 0 deletions config.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,25 @@ Each container has exactly one *root filesystem*, specified in the *root* object
}
```

## Mount Points

You can add array of mount points inside container. Each record in this array
must have configuration in runtime config in *mounts object*, where keys are
*name* of mount point.

* **name** (string, required) Name of mount point. Used for configuration lookup
in runtime config.
* **path** (string, required) Destination of mount point: path inside container.

*Example*

```json
"mounts": {
"name": "proc",
"path": "/proc",
}
```

## Process configuration

* **terminal** (bool, optional) specifies whether you want a terminal attached to that process. Defaults to false.
Expand Down
30 changes: 16 additions & 14 deletions runtime-config.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
## Mount Configuration

Additional filesystems can be declared as "mounts", specified in the *mounts* array. The parameters are similar to the ones in Linux mount system call. [http://linux.die.net/man/2/mount](http://linux.die.net/man/2/mount)
Additional filesystems can be declared as "mounts", specified in the *mounts* object.
Keys in this object are names of mount points from portable config.
Values are objects with configuration of mount points.
The parameters are similar to the ones in Linux mount system call.
[http://linux.die.net/man/2/mount](http://linux.die.net/man/2/mount)
Note, that only mount points which listed in portable configuration will be
really mounted.

* **type** (string, required) Linux, *filesystemtype* argument supported by the kernel are listed in */proc/filesystems* (e.g., "minix", "ext2", "ext3", "jfs", "xfs", "reiserfs", "msdos", "proc", "nfs", "iso9660"). Windows: ntfs
* **source** (string, required) a device name, but can also be a directory name or a dummy. Windows, the volume name that is the target of the mount point. \\?\Volume\{GUID}\ (on Windows source is called target)
Expand All @@ -10,45 +16,41 @@ Additional filesystems can be declared as "mounts", specified in the *mounts* ar
*Example (Linux)*

```json
"mounts": [
{
"mounts": {
"proc": {
"type": "proc",
"source": "proc",
"destination": "/proc",
"options": []
},
{
"dev": {
"type": "tmpfs",
"source": "tmpfs",
"destination": "/dev",
"options": ["nosuid","strictatime","mode=755","size=65536k"]
},
{
"devpts": {
"type": "devpts",
"source": "devpts",
"destination": "/dev/pts",
"options": ["nosuid","noexec","newinstance","ptmxmode=0666","mode=0620","gid=5"]
},
{
"data": {
"type": "bind",
"source": "/volumes/testing",
"destination": "/data",
"options": ["rbind","rw"]
}
]
}
```

*Example (Windows)*

```json
"mounts": [
{
"mounts": {
"myfancymountpoint": {
"type": "ntfs",
"source": "\\\\?\\Volume\\{2eca078d-5cbc-43d3-aff8-7e8511f60d0e}\\",
"destination": "C:\\Users\\crosbymichael\\My Fancy Mount Point\\",
"options": []
}
]
}
```

See links for details about [mountvol](http://ss64.com/nt/mountvol.html) and [SetVolumeMountPoint](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365561(v=vs.85).aspx) in Windows.
8 changes: 4 additions & 4 deletions runtime_config.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package specs

type RuntimeSpec struct {
// Mounts profile configuration for adding mounts to the container's filesystem.
Mounts []Mount `json:"mounts"`
// Mounts is a mapping of names to mount configuration.
// Which mounts will be mounted and where should be chosen with MountPoints
// in Spec.
Mounts map[string]Mount `json:"mounts"`
// Hooks are the commands run at various lifecycle events of the container.
Hooks Hooks `json:"hooks"`
}
Expand All @@ -29,8 +31,6 @@ type Mount struct {
// Source specifies the source path of the mount. In the case of bind mounts on
// linux based systems this would be the file on the host.
Source string `json:"source"`
// Destination is the path where the mount will be placed relative to the container's root.
Destination string `json:"destination"`
// Options are fstab style mount options.
Options []string `json:"options"`
}

0 comments on commit aaa314c

Please sign in to comment.