rename plugin manifest

Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
Victor Vieux 2016-11-07 18:51:47 -08:00 committed by Tibor Vass
parent ebacbb50ae
commit fdfcbe778a
3 changed files with 28 additions and 34 deletions

View File

@ -2,7 +2,7 @@
aliases: [ aliases: [
"/engine/extend/" "/engine/extend/"
] ]
title: "Plugin manifest" title: "Plugin config"
description: "How develop and use a plugin with the managed plugin system" description: "How develop and use a plugin with the managed plugin system"
keywords: "API, Usage, plugins, documentation, developer" keywords: "API, Usage, plugins, documentation, developer"
advisory: "experimental" advisory: "experimental"
@ -17,29 +17,25 @@ advisory: "experimental"
will be rejected. will be rejected.
--> -->
# Plugin Manifest Version 0 of Plugin V2 # Plugin Config Version 0 of Plugin V2
This document outlines the format of the V0 plugin manifest. The plugin This document outlines the format of the V0 plugin config. The plugin
manifest described herein was introduced in the Docker daemon (experimental version) in the [v1.12.0 config described herein was introduced in the Docker daemon (experimental version) in the [v1.12.0
release](https://github.com/docker/docker/commit/f37117045c5398fd3dca8016ea8ca0cb47e7312b). release](https://github.com/docker/docker/commit/f37117045c5398fd3dca8016ea8ca0cb47e7312b).
Plugin manifests describe the various constituents of a docker plugin. Plugin Plugin configs describe the various constituents of a docker plugin. Plugin
manifests can be serialized to JSON format with the following media types: configs can be serialized to JSON format with the following media types:
Manifest Type | Media Type Config Type | Media Type
------------- | ------------- ------------- | -------------
manifest | "application/vnd.docker.plugin.v0+json" config | "application/vnd.docker.plugin.v0+json"
## *Manifest* Field Descriptions ## *Config* Field Descriptions
Manifest provides the base accessible fields for working with V0 plugin format Config provides the base accessible fields for working with V0 plugin format
in the registry. in the registry.
- **`manifestVersion`** *string*
version of the plugin manifest (This version uses V0)
- **`description`** *string* - **`description`** *string*
description of the plugin description of the plugin
@ -169,13 +165,13 @@ Manifest provides the base accessible fields for working with V0 plugin format
values of the args. values of the args.
## Example Manifest ## Example Config
*Example showing the 'tiborvass/no-remove' plugin manifest.* *Example showing the 'tiborvass/no-remove' plugin config.*
``` ```
{ {
"manifestVersion": "v0", "configVersion": "v0",
"description": "A test plugin for Docker", "description": "A test plugin for Docker",
"documentation": "https://docs.docker.com/engine/extend/plugins/", "documentation": "https://docs.docker.com/engine/extend/plugins/",
"entrypoint": ["plugin-no-remove", "/data"], "entrypoint": ["plugin-no-remove", "/data"],

View File

@ -141,7 +141,7 @@ a `plugins.json` with a single plugin installed.
{ {
"cd851ce43a403": { "cd851ce43a403": {
"plugin": { "plugin": {
"Manifest": { "Config": {
"Args": { "Args": {
"Value": null, "Value": null,
"Settable": null, "Settable": null,
@ -154,7 +154,6 @@ a `plugins.json` with a single plugin installed.
"Capabilities": [ "Capabilities": [
"CAP_SYS_ADMIN" "CAP_SYS_ADMIN"
], ],
"ManifestVersion": "v0",
"Description": "sshFS plugin for Docker", "Description": "sshFS plugin for Docker",
"Documentation": "https://docs.docker.com/engine/extend/plugins/", "Documentation": "https://docs.docker.com/engine/extend/plugins/",
"Interface": { "Interface": {
@ -196,8 +195,8 @@ and two JSON files.
# ls -la /var/lib/docker/plugins/cd851ce43a403 # ls -la /var/lib/docker/plugins/cd851ce43a403
total 12 total 12
drwx------ 19 root root 4096 Aug 8 17:56 rootfs drwx------ 19 root root 4096 Aug 8 17:56 rootfs
-rw-r--r-- 1 root root 50 Aug 8 17:56 plugin-config.json -rw-r--r-- 1 root root 50 Aug 8 17:56 plugin-settings.json
-rw------- 1 root root 347 Aug 8 17:56 manifest.json -rw------- 1 root root 347 Aug 8 17:56 config.json
``` ```
#### The rootfs directory #### The rootfs directory
@ -219,17 +218,16 @@ $ docker rm -vf "$id"
$ docker rmi rootfs $ docker rmi rootfs
``` ```
#### The manifest.json and plugin-config.json files #### The config.json and plugin-settings.json files
The `manifest.json` file describes the plugin. The `plugin-config.json` file The `config.json` file describes the plugin. The `plugin-settings.json` file
contains runtime parameters and is only required if your plugin has runtime contains runtime parameters and is only required if your plugin has runtime
parameters. [See the Plugins Manifest reference](manifest.md). parameters. [See the Plugins Config reference](config.md).
Consider the following `manifest.json` file. Consider the following `config.json` file.
```json ```json
{ {
"manifestVersion": "v0",
"description": "sshFS plugin for Docker", "description": "sshFS plugin for Docker",
"documentation": "https://docs.docker.com/engine/extend/plugins/", "documentation": "https://docs.docker.com/engine/extend/plugins/",
"entrypoint": ["/go/bin/docker-volume-sshfs"], "entrypoint": ["/go/bin/docker-volume-sshfs"],
@ -250,7 +248,7 @@ entrypoint and uses the `/run/docker/plugins/sshfs.sock` socket to communicate
with Docker Engine. with Docker Engine.
Consider the following `plugin-config.json` file. Consider the following `plugin-settings.json` file.
```json ```json
{ {
@ -264,8 +262,8 @@ Consider the following `plugin-config.json` file.
This plugin has no runtime parameters. This plugin has no runtime parameters.
Each of these JSON files is included as part of `plugins.json`, as you can see Each of these JSON files is included as part of `plugins.json`, as you can see
by looking back at the example above. After a plugin is installed, `manifest.json` by looking back at the example above. After a plugin is installed, `config.json`
is read-only, but `plugin-config.json` is read-write, and includes all runtime is read-only, but `plugin-settings.json` is read-write, and includes all runtime
configuration options for the plugin. configuration options for the plugin.
### Creating the plugin ### Creating the plugin
@ -279,9 +277,9 @@ Follow these steps to create a plugin:
using `docker export`. See [The rootfs directory](#the-rootfs-directory) for using `docker export`. See [The rootfs directory](#the-rootfs-directory) for
an example of creating a `rootfs`. an example of creating a `rootfs`.
3. Create a `manifest.json` file in `/var/lib/docker/plugins/$id/`. 3. Create a `config.json` file in `/var/lib/docker/plugins/$id/`.
4. Create a `plugin-config.json` file if needed. 4. Create a `plugin-settings.json` file if needed.
5. Create or add a section to `/var/lib/docker/plugins/plugins.json`. Use 5. Create or add a section to `/var/lib/docker/plugins/plugins.json`. Use
`<user>/<name>` as “Name” and `$id` as “Id”. `<user>/<name>` as “Name” and `$id` as “Id”.

View File

@ -17,7 +17,7 @@ advisory: "experimental"
```markdown ```markdown
Usage: docker plugin create [OPTIONS] reponame[:tag] PATH-TO-ROOTFS Usage: docker plugin create [OPTIONS] reponame[:tag] PATH-TO-ROOTFS
create a plugin from the given PATH-TO-ROOTFS, which contains the plugin's root filesystem and the manifest file, manifest.json create a plugin from the given PATH-TO-ROOTFS, which contains the plugin's root filesystem and the config file, config.json
Options: Options:
--compress Compress the context using gzip --compress Compress the context using gzip
@ -25,7 +25,7 @@ Options:
``` ```
Creates a plugin. Before creating the plugin, prepare the plugin's root filesystem as well as Creates a plugin. Before creating the plugin, prepare the plugin's root filesystem as well as
the manifest.json (https://github.com/docker/docker/blob/master/docs/extend/manifest.md) the config.json (https://github.com/docker/docker/blob/master/docs/extend/config.md)
The following example shows how to create a sample `plugin`. The following example shows how to create a sample `plugin`.
@ -34,7 +34,7 @@ The following example shows how to create a sample `plugin`.
$ ls -ls /home/pluginDir $ ls -ls /home/pluginDir
4 -rw-r--r-- 1 root root 431 Nov 7 01:40 manifest.json 4 -rw-r--r-- 1 root root 431 Nov 7 01:40 config.json
0 drwxr-xr-x 19 root root 420 Nov 7 01:40 rootfs 0 drwxr-xr-x 19 root root 420 Nov 7 01:40 rootfs
$ docker plugin create plugin /home/pluginDir $ docker plugin create plugin /home/pluginDir