github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/docs/api/v1.27.yaml (about) 1 # A Swagger 2.0 (a.k.a. OpenAPI) definition of the Engine API. 2 # 3 # This is used for generating API documentation and the types used by the 4 # client/server. See api/README.md for more information. 5 # 6 # Some style notes: 7 # - This file is used by ReDoc, which allows GitHub Flavored Markdown in 8 # descriptions. 9 # - There is no maximum line length, for ease of editing and pretty diffs. 10 # - operationIds are in the format "NounVerb", with a singular noun. 11 12 swagger: "2.0" 13 schemes: 14 - "http" 15 - "https" 16 produces: 17 - "application/json" 18 - "text/plain" 19 consumes: 20 - "application/json" 21 - "text/plain" 22 basePath: "/v1.27" 23 info: 24 title: "Docker Engine API" 25 version: "1.27" 26 x-logo: 27 url: "https://docs.docker.com/assets/images/logo-docker-main.png" 28 description: | 29 The Engine API is an HTTP API served by Docker Engine. It is the API the Docker client uses to communicate with the Engine, so everything the Docker client can do can be done with the API. 30 31 Most of the client's commands map directly to API endpoints (e.g. `docker ps` is `GET /containers/json`). The notable exception is running containers, which consists of several API calls. 32 33 # Errors 34 35 The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format: 36 37 ``` 38 { 39 "message": "page not found" 40 } 41 ``` 42 43 # Versioning 44 45 The API is usually changed in each release of Docker, so API calls are versioned to ensure that clients don't break. 46 47 For Docker Engine >= 17.03.1, the API version is 1.27. To lock to this version, you prefix the URL with `/v1.27`. For example, calling `/info` is the same as calling `/v1.27/info`. 48 49 Engine releases in the near future should support this version of the API, so your client will continue to work even if it is talking to a newer Engine. 50 51 In previous versions of Docker, it was possible to access the API without providing a version. This behaviour is now deprecated will be removed in a future version of Docker. 52 53 The API uses an open schema model, which means server may add extra properties to responses. Likewise, the server will ignore any extra query parameters and request body properties. When you write clients, you need to ignore additional properties in responses to ensure they do not break when talking to newer Docker daemons. 54 55 This documentation is for version 1.27 of the API, which was introduced with Docker 17.03.1. Use this table to find documentation for previous versions of the API: 56 57 Docker version | API version | Changes 58 ----------------|-------------|--------- 59 1.13.1 & 17.03.0 | [1.26](https://docs.docker.com/engine/api/v1.26/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-26-api-changes) 60 1.13.0 | [1.25](https://docs.docker.com/engine/api/v1.25/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-25-api-changes) 61 1.12.x | [1.24](https://docs.docker.com/engine/api/v1.24/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-24-api-changes) 62 1.11.x | [1.23](https://docs.docker.com/engine/api/v1.23/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-23-api-changes) 63 1.10.x | [1.22](https://docs.docker.com/engine/api/v1.22/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-22-api-changes) 64 1.9.x | [1.21](https://docs.docker.com/engine/api/v1.21/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-21-api-changes) 65 1.8.x | [1.20](https://docs.docker.com/engine/api/v1.20/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-20-api-changes) 66 1.7.x | [1.19](https://docs.docker.com/engine/api/v1.19/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-19-api-changes) 67 1.6.x | [1.18](https://docs.docker.com/engine/api/v1.18/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-18-api-changes) 68 69 # Authentication 70 71 Authentication for registries is handled client side. The client has to send authentication details to various endpoints that need to communicate with registries, such as `POST /images/(name)/push`. These are sent as `X-Registry-Auth` header as a Base64 encoded (JSON) string with the following structure: 72 73 ``` 74 { 75 "username": "string", 76 "password": "string", 77 "email": "string", 78 "serveraddress": "string" 79 } 80 ``` 81 82 The `serveraddress` is a domain/IP without a protocol. Throughout this structure, double quotes are required. 83 84 If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth), you can just pass this instead of credentials: 85 86 ``` 87 { 88 "identitytoken": "9cbaf023786cd7..." 89 } 90 ``` 91 92 # The tags on paths define the menu sections in the ReDoc documentation, so 93 # the usage of tags must make sense for that: 94 # - They should be singular, not plural. 95 # - There should not be too many tags, or the menu becomes unwieldly. For 96 # example, it is preferable to add a path to the "System" tag instead of 97 # creating a tag with a single path in it. 98 # - The order of tags in this list defines the order in the menu. 99 tags: 100 # Primary objects 101 - name: "Container" 102 x-displayName: "Containers" 103 description: | 104 Create and manage containers. 105 - name: "Image" 106 x-displayName: "Images" 107 - name: "Network" 108 x-displayName: "Networks" 109 description: | 110 Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/network/) for more information. 111 - name: "Volume" 112 x-displayName: "Volumes" 113 description: | 114 Create and manage persistent storage that can be attached to containers. 115 - name: "Exec" 116 x-displayName: "Exec" 117 description: | 118 Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information. 119 120 To exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`. 121 # Swarm things 122 - name: "Swarm" 123 x-displayName: "Swarm" 124 description: | 125 Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information. 126 - name: "Node" 127 x-displayName: "Nodes" 128 description: | 129 Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work. 130 - name: "Service" 131 x-displayName: "Services" 132 description: | 133 Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work. 134 - name: "Task" 135 x-displayName: "Tasks" 136 description: | 137 A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work. 138 - name: "Secret" 139 x-displayName: "Secrets" 140 description: | 141 Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work. 142 # System things 143 - name: "Plugin" 144 x-displayName: "Plugins" 145 - name: "System" 146 x-displayName: "System" 147 148 definitions: 149 Port: 150 type: "object" 151 description: "An open port on a container" 152 required: [PrivatePort, Type] 153 properties: 154 IP: 155 type: "string" 156 format: "ip-address" 157 PrivatePort: 158 type: "integer" 159 format: "uint16" 160 x-nullable: false 161 description: "Port on the container" 162 PublicPort: 163 type: "integer" 164 format: "uint16" 165 description: "Port exposed on the host" 166 Type: 167 type: "string" 168 x-nullable: false 169 enum: ["tcp", "udp"] 170 example: 171 PrivatePort: 8080 172 PublicPort: 80 173 Type: "tcp" 174 175 MountPoint: 176 type: "object" 177 description: | 178 MountPoint represents a mount point configuration inside the container. 179 This is used for reporting the mountpoints in use by a container. 180 properties: 181 Type: 182 description: | 183 The mount type: 184 185 - `bind` a mount of a file or directory from the host into the container. 186 - `volume` a docker volume with the given `Name`. 187 - `tmpfs` a `tmpfs`. 188 type: "string" 189 enum: 190 - "bind" 191 - "volume" 192 - "tmpfs" 193 example: "volume" 194 Name: 195 description: | 196 Name is the name reference to the underlying data defined by `Source` 197 e.g., the volume name. 198 type: "string" 199 example: "myvolume" 200 Source: 201 description: | 202 Source location of the mount. 203 204 For volumes, this contains the storage location of the volume (within 205 `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains 206 the source (host) part of the bind-mount. For `tmpfs` mount points, this 207 field is empty. 208 type: "string" 209 example: "/var/lib/docker/volumes/myvolume/_data" 210 Destination: 211 description: | 212 Destination is the path relative to the container root (`/`) where 213 the `Source` is mounted inside the container. 214 type: "string" 215 example: "/usr/share/nginx/html/" 216 Driver: 217 description: | 218 Driver is the volume driver used to create the volume (if it is a volume). 219 type: "string" 220 example: "local" 221 Mode: 222 description: | 223 Mode is a comma separated list of options supplied by the user when 224 creating the bind/volume mount. 225 226 The default is platform-specific (`"z"` on Linux, empty on Windows). 227 type: "string" 228 example: "z" 229 RW: 230 description: | 231 Whether the mount is mounted writable (read-write). 232 type: "boolean" 233 example: true 234 Propagation: 235 description: | 236 Propagation describes how mounts are propagated from the host into the 237 mount point, and vice-versa. Refer to the [Linux kernel documentation](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt) 238 for details. This field is not used on Windows. 239 type: "string" 240 example: "" 241 242 DeviceMapping: 243 type: "object" 244 description: "A device mapping between the host and container" 245 properties: 246 PathOnHost: 247 type: "string" 248 PathInContainer: 249 type: "string" 250 CgroupPermissions: 251 type: "string" 252 example: 253 PathOnHost: "/dev/deviceName" 254 PathInContainer: "/dev/deviceName" 255 CgroupPermissions: "mrw" 256 257 ThrottleDevice: 258 type: "object" 259 properties: 260 Path: 261 description: "Device path" 262 type: "string" 263 Rate: 264 description: "Rate" 265 type: "integer" 266 format: "int64" 267 minimum: 0 268 269 Mount: 270 type: "object" 271 properties: 272 Target: 273 description: "Container path." 274 type: "string" 275 Source: 276 description: "Mount source (e.g. a volume name, a host path)." 277 Type: 278 description: | 279 The mount type. Available types: 280 281 - `bind` Mounts a file or directory from the host into the container. Must exist prior to creating the container. 282 - `volume` Creates a volume with the given name and options (or uses a pre-existing volume with the same name and options). These are **not** removed when the container is removed. 283 - `tmpfs` Create a tmpfs with the given options. The mount source cannot be specified for tmpfs. 284 type: "string" 285 enum: 286 - "bind" 287 - "volume" 288 - "tmpfs" 289 ReadOnly: 290 description: "Whether the mount should be read-only." 291 type: "boolean" 292 BindOptions: 293 description: "Optional configuration for the `bind` type." 294 type: "object" 295 properties: 296 Propagation: 297 description: "A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`." 298 enum: 299 - "private" 300 - "rprivate" 301 - "shared" 302 - "rshared" 303 - "slave" 304 - "rslave" 305 VolumeOptions: 306 description: "Optional configuration for the `volume` type." 307 type: "object" 308 properties: 309 NoCopy: 310 description: "Populate volume with data from the target." 311 type: "boolean" 312 default: false 313 Labels: 314 description: "User-defined key/value metadata." 315 type: "object" 316 additionalProperties: 317 type: "string" 318 DriverConfig: 319 description: "Map of driver specific options" 320 type: "object" 321 properties: 322 Name: 323 description: "Name of the driver to use to create the volume." 324 type: "string" 325 Options: 326 description: "key/value map of driver specific options." 327 type: "object" 328 additionalProperties: 329 type: "string" 330 TmpfsOptions: 331 description: "Optional configuration for the `tmpfs` type." 332 type: "object" 333 properties: 334 SizeBytes: 335 description: "The size for the tmpfs mount in bytes." 336 type: "integer" 337 format: "int64" 338 Mode: 339 description: "The permission mode for the tmpfs mount in an integer." 340 type: "integer" 341 RestartPolicy: 342 description: | 343 The behavior to apply when the container exits. The default is not to restart. 344 345 An ever increasing delay (double the previous delay, starting at 100ms) is added before each restart to prevent flooding the server. 346 type: "object" 347 properties: 348 Name: 349 type: "string" 350 description: | 351 - `always` Always restart 352 - `unless-stopped` Restart always except when the user has manually stopped the container 353 - `on-failure` Restart only when the container exit code is non-zero 354 enum: 355 - "always" 356 - "unless-stopped" 357 - "on-failure" 358 MaximumRetryCount: 359 type: "integer" 360 description: "If `on-failure` is used, the number of times to retry before giving up" 361 default: {} 362 363 Resources: 364 description: "A container's resources (cgroups config, ulimits, etc)" 365 type: "object" 366 properties: 367 # Applicable to all platforms 368 CpuShares: 369 description: "An integer value representing this container's relative CPU weight versus other containers." 370 type: "integer" 371 Memory: 372 description: "Memory limit in bytes." 373 type: "integer" 374 default: 0 375 # Applicable to UNIX platforms 376 CgroupParent: 377 description: "Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist." 378 type: "string" 379 BlkioWeight: 380 description: "Block IO weight (relative weight)." 381 type: "integer" 382 minimum: 0 383 maximum: 1000 384 BlkioWeightDevice: 385 description: | 386 Block IO weight (relative device weight) in the form `[{"Path": "device_path", "Weight": weight}]`. 387 type: "array" 388 items: 389 type: "object" 390 properties: 391 Path: 392 type: "string" 393 Weight: 394 type: "integer" 395 minimum: 0 396 BlkioDeviceReadBps: 397 description: | 398 Limit read rate (bytes per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`. 399 type: "array" 400 items: 401 $ref: "#/definitions/ThrottleDevice" 402 BlkioDeviceWriteBps: 403 description: | 404 Limit write rate (bytes per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`. 405 type: "array" 406 items: 407 $ref: "#/definitions/ThrottleDevice" 408 BlkioDeviceReadIOps: 409 description: | 410 Limit read rate (IO per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`. 411 type: "array" 412 items: 413 $ref: "#/definitions/ThrottleDevice" 414 BlkioDeviceWriteIOps: 415 description: | 416 Limit write rate (IO per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`. 417 type: "array" 418 items: 419 $ref: "#/definitions/ThrottleDevice" 420 CpuPeriod: 421 description: "The length of a CPU period in microseconds." 422 type: "integer" 423 format: "int64" 424 CpuQuota: 425 description: "Microseconds of CPU time that the container can get in a CPU period." 426 type: "integer" 427 format: "int64" 428 CpuRealtimePeriod: 429 description: "The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks." 430 type: "integer" 431 format: "int64" 432 CpuRealtimeRuntime: 433 description: "The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks." 434 type: "integer" 435 format: "int64" 436 CpusetCpus: 437 description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)" 438 type: "string" 439 CpusetMems: 440 description: "Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems." 441 type: "string" 442 Devices: 443 description: "A list of devices to add to the container." 444 type: "array" 445 items: 446 $ref: "#/definitions/DeviceMapping" 447 DiskQuota: 448 description: "Disk limit (in bytes)." 449 type: "integer" 450 format: "int64" 451 KernelMemory: 452 description: "Kernel memory limit in bytes." 453 type: "integer" 454 format: "int64" 455 MemoryReservation: 456 description: "Memory soft limit in bytes." 457 type: "integer" 458 format: "int64" 459 MemorySwap: 460 description: "Total memory limit (memory + swap). Set as `-1` to enable unlimited swap." 461 type: "integer" 462 format: "int64" 463 MemorySwappiness: 464 description: "Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100." 465 type: "integer" 466 format: "int64" 467 minimum: 0 468 maximum: 100 469 NanoCPUs: 470 description: "CPU quota in units of 10<sup>-9</sup> CPUs." 471 type: "integer" 472 format: "int64" 473 OomKillDisable: 474 description: "Disable OOM Killer for the container." 475 type: "boolean" 476 PidsLimit: 477 description: "Tune a container's pids limit. Set -1 for unlimited." 478 type: "integer" 479 format: "int64" 480 Ulimits: 481 description: | 482 A list of resource limits to set in the container. For example: `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`" 483 type: "array" 484 items: 485 type: "object" 486 properties: 487 Name: 488 description: "Name of ulimit" 489 type: "string" 490 Soft: 491 description: "Soft limit" 492 type: "integer" 493 Hard: 494 description: "Hard limit" 495 type: "integer" 496 # Applicable to Windows 497 CpuCount: 498 description: | 499 The number of usable CPUs (Windows only). 500 501 On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last. 502 type: "integer" 503 format: "int64" 504 CpuPercent: 505 description: | 506 The usable percentage of the available CPUs (Windows only). 507 508 On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last. 509 type: "integer" 510 format: "int64" 511 IOMaximumIOps: 512 description: "Maximum IOps for the container system drive (Windows only)" 513 type: "integer" 514 format: "int64" 515 IOMaximumBandwidth: 516 description: "Maximum IO in bytes per second for the container system drive (Windows only)" 517 type: "integer" 518 format: "int64" 519 520 HealthConfig: 521 description: "A test to perform to check that the container is healthy." 522 type: "object" 523 properties: 524 Test: 525 description: | 526 The test to perform. Possible values are: 527 528 - `[]` inherit healthcheck from image or parent image 529 - `["NONE"]` disable healthcheck 530 - `["CMD", args...]` exec arguments directly 531 - `["CMD-SHELL", command]` run command with system's default shell 532 type: "array" 533 items: 534 type: "string" 535 Interval: 536 description: "The time to wait between checks in nanoseconds. 0 means inherit." 537 type: "integer" 538 Timeout: 539 description: "The time to wait before considering the check to have hung. 0 means inherit." 540 type: "integer" 541 Retries: 542 description: "The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit." 543 type: "integer" 544 545 HostConfig: 546 description: "Container configuration that depends on the host we are running on" 547 allOf: 548 - $ref: "#/definitions/Resources" 549 - type: "object" 550 properties: 551 # Applicable to all platforms 552 Binds: 553 type: "array" 554 description: | 555 A list of volume bindings for this container. Each volume binding is a string in one of these forms: 556 557 - `host-src:container-dest` to bind-mount a host path into the container. Both `host-src`, and `container-dest` must be an _absolute_ path. 558 - `host-src:container-dest:ro` to make the bind-mount read-only inside the container. Both `host-src`, and `container-dest` must be an _absolute_ path. 559 - `volume-name:container-dest` to bind-mount a volume managed by a volume driver into the container. `container-dest` must be an _absolute_ path. 560 - `volume-name:container-dest:ro` to mount the volume read-only inside the container. `container-dest` must be an _absolute_ path. 561 items: 562 type: "string" 563 ContainerIDFile: 564 type: "string" 565 description: "Path to a file where the container ID is written" 566 LogConfig: 567 type: "object" 568 description: "The logging configuration for this container" 569 properties: 570 Type: 571 type: "string" 572 enum: 573 - "json-file" 574 - "syslog" 575 - "journald" 576 - "gelf" 577 - "fluentd" 578 - "awslogs" 579 - "splunk" 580 - "etwlogs" 581 - "none" 582 Config: 583 type: "object" 584 additionalProperties: 585 type: "string" 586 NetworkMode: 587 type: "string" 588 description: "Network mode to use for this container. Supported standard values are: `bridge`, `host`, `none`, and `container:<name|id>`. Any other value is taken 589 as a custom network's name to which this container should connect to." 590 PortBindings: 591 type: "object" 592 description: "A map of exposed container ports and the host port they should map to." 593 additionalProperties: 594 type: "object" 595 properties: 596 HostIp: 597 type: "string" 598 description: "The host IP address" 599 HostPort: 600 type: "string" 601 description: "The host port number, as a string" 602 RestartPolicy: 603 $ref: "#/definitions/RestartPolicy" 604 AutoRemove: 605 type: "boolean" 606 description: "Automatically remove the container when the container's process exits. This has no effect if `RestartPolicy` is set." 607 VolumeDriver: 608 type: "string" 609 description: "Driver that this container uses to mount volumes." 610 VolumesFrom: 611 type: "array" 612 description: "A list of volumes to inherit from another container, specified in the form `<container name>[:<ro|rw>]`." 613 items: 614 type: "string" 615 Mounts: 616 description: "Specification for mounts to be added to the container." 617 type: "array" 618 items: 619 $ref: "#/definitions/Mount" 620 621 # Applicable to UNIX platforms 622 CapAdd: 623 type: "array" 624 description: "A list of kernel capabilities to add to the container." 625 items: 626 type: "string" 627 CapDrop: 628 type: "array" 629 description: "A list of kernel capabilities to drop from the container." 630 items: 631 type: "string" 632 Dns: 633 type: "array" 634 description: "A list of DNS servers for the container to use." 635 items: 636 type: "string" 637 DnsOptions: 638 type: "array" 639 description: "A list of DNS options." 640 items: 641 type: "string" 642 DnsSearch: 643 type: "array" 644 description: "A list of DNS search domains." 645 items: 646 type: "string" 647 ExtraHosts: 648 type: "array" 649 description: | 650 A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. Specified in the form `["hostname:IP"]`. 651 items: 652 type: "string" 653 GroupAdd: 654 type: "array" 655 description: "A list of additional groups that the container process will run as." 656 items: 657 type: "string" 658 IpcMode: 659 type: "string" 660 description: "IPC namespace to use for the container." 661 Cgroup: 662 type: "string" 663 description: "Cgroup to use for the container." 664 Links: 665 type: "array" 666 description: "A list of links for the container in the form `container_name:alias`." 667 items: 668 type: "string" 669 OomScoreAdj: 670 type: "integer" 671 description: "An integer value containing the score given to the container in order to tune OOM killer preferences." 672 PidMode: 673 type: "string" 674 description: | 675 Set the PID (Process) Namespace mode for the container. It can be either: 676 677 - `"container:<name|id>"`: joins another container's PID namespace 678 - `"host"`: use the host's PID namespace inside the container 679 Privileged: 680 type: "boolean" 681 description: "Gives the container full access to the host." 682 PublishAllPorts: 683 type: "boolean" 684 description: "Allocates a random host port for all of a container's exposed ports." 685 ReadonlyRootfs: 686 type: "boolean" 687 description: "Mount the container's root filesystem as read only." 688 SecurityOpt: 689 type: "array" 690 description: "A list of string values to customize labels for MLS 691 systems, such as SELinux." 692 items: 693 type: "string" 694 StorageOpt: 695 type: "object" 696 description: | 697 Storage driver options for this container, in the form `{"size": "120G"}`. 698 additionalProperties: 699 type: "string" 700 Tmpfs: 701 type: "object" 702 description: | 703 A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: `{ "/run": "rw,noexec,nosuid,size=65536k" }`. 704 additionalProperties: 705 type: "string" 706 UTSMode: 707 type: "string" 708 description: "UTS namespace to use for the container." 709 UsernsMode: 710 type: "string" 711 description: "Sets the usernamespace mode for the container when usernamespace remapping option is enabled." 712 ShmSize: 713 type: "integer" 714 description: "Size of `/dev/shm` in bytes. If omitted, the system uses 64MB." 715 minimum: 0 716 Sysctls: 717 type: "object" 718 description: | 719 A list of kernel parameters (sysctls) to set in the container. For example: `{"net.ipv4.ip_forward": "1"}` 720 additionalProperties: 721 type: "string" 722 Runtime: 723 type: "string" 724 description: "Runtime to use with this container." 725 # Applicable to Windows 726 ConsoleSize: 727 type: "array" 728 description: "Initial console size, as an `[height, width]` array. (Windows only)" 729 minItems: 2 730 maxItems: 2 731 items: 732 type: "integer" 733 minimum: 0 734 Isolation: 735 type: "string" 736 description: "Isolation technology of the container. (Windows only)" 737 enum: 738 - "default" 739 - "process" 740 - "hyperv" 741 742 Config: 743 description: "Configuration for a container that is portable between hosts" 744 type: "object" 745 properties: 746 Hostname: 747 description: "The hostname to use for the container, as a valid RFC 1123 hostname." 748 type: "string" 749 Domainname: 750 description: "The domain name to use for the container." 751 type: "string" 752 User: 753 description: "The user that commands are run as inside the container." 754 type: "string" 755 AttachStdin: 756 description: "Whether to attach to `stdin`." 757 type: "boolean" 758 default: false 759 AttachStdout: 760 description: "Whether to attach to `stdout`." 761 type: "boolean" 762 default: true 763 AttachStderr: 764 description: "Whether to attach to `stderr`." 765 type: "boolean" 766 default: true 767 ExposedPorts: 768 description: | 769 An object mapping ports to an empty object in the form: 770 771 `{"<port>/<tcp|udp>": {}}` 772 type: "object" 773 additionalProperties: 774 type: "object" 775 enum: 776 - {} 777 default: {} 778 Tty: 779 description: "Attach standard streams to a TTY, including `stdin` if it is not closed." 780 type: "boolean" 781 default: false 782 OpenStdin: 783 description: "Open `stdin`" 784 type: "boolean" 785 default: false 786 StdinOnce: 787 description: "Close `stdin` after one attached client disconnects" 788 type: "boolean" 789 default: false 790 Env: 791 description: | 792 A list of environment variables to set inside the container in the form `["VAR=value", ...]` 793 type: "array" 794 items: 795 type: "string" 796 Cmd: 797 description: "Command to run specified as a string or an array of strings." 798 type: 799 - "array" 800 - "string" 801 items: 802 type: "string" 803 Healthcheck: 804 $ref: "#/definitions/HealthConfig" 805 ArgsEscaped: 806 description: "Command is already escaped (Windows only)" 807 type: "boolean" 808 Image: 809 description: "The name of the image to use when creating the container" 810 type: "string" 811 Volumes: 812 description: "An object mapping mount point paths inside the container to empty objects." 813 type: "object" 814 properties: 815 additionalProperties: 816 type: "object" 817 enum: 818 - {} 819 default: {} 820 WorkingDir: 821 description: "The working directory for commands to run in." 822 type: "string" 823 Entrypoint: 824 description: | 825 The entry point for the container as a string or an array of strings. 826 827 If the array consists of exactly one empty string (`[""]`) then the entry point is reset to system default (i.e., the entry point used by docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`). 828 type: 829 - "array" 830 - "string" 831 items: 832 type: "string" 833 NetworkDisabled: 834 description: "Disable networking for the container." 835 type: "boolean" 836 MacAddress: 837 description: "MAC address of the container." 838 type: "string" 839 OnBuild: 840 description: "`ONBUILD` metadata that were defined in the image's `Dockerfile`." 841 type: "array" 842 items: 843 type: "string" 844 Labels: 845 description: "User-defined key/value metadata." 846 type: "object" 847 additionalProperties: 848 type: "string" 849 StopSignal: 850 description: "Signal to stop a container as a string or unsigned integer." 851 type: "string" 852 default: "SIGTERM" 853 StopTimeout: 854 description: "Timeout to stop a container in seconds." 855 type: "integer" 856 default: 10 857 Shell: 858 description: "Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell." 859 type: "array" 860 items: 861 type: "string" 862 863 NetworkConfig: 864 description: "TODO: check is correct" 865 type: "object" 866 properties: 867 Bridge: 868 type: "string" 869 Gateway: 870 type: "string" 871 Address: 872 type: "string" 873 IPPrefixLen: 874 type: "integer" 875 MacAddress: 876 type: "string" 877 PortMapping: 878 type: "string" 879 Ports: 880 type: "array" 881 items: 882 $ref: "#/definitions/Port" 883 884 GraphDriver: 885 description: "Information about this container's graph driver." 886 type: "object" 887 properties: 888 Name: 889 type: "string" 890 Data: 891 type: "object" 892 additionalProperties: 893 type: "string" 894 895 Image: 896 type: "object" 897 properties: 898 Id: 899 type: "string" 900 RepoTags: 901 type: "array" 902 items: 903 type: "string" 904 RepoDigests: 905 type: "array" 906 items: 907 type: "string" 908 Parent: 909 type: "string" 910 Comment: 911 type: "string" 912 Created: 913 type: "string" 914 Container: 915 type: "string" 916 ContainerConfig: 917 $ref: "#/definitions/Config" 918 DockerVersion: 919 type: "string" 920 Author: 921 type: "string" 922 Config: 923 $ref: "#/definitions/Config" 924 Architecture: 925 type: "string" 926 Os: 927 type: "string" 928 Size: 929 type: "integer" 930 format: "int64" 931 VirtualSize: 932 type: "integer" 933 format: "int64" 934 GraphDriver: 935 $ref: "#/definitions/GraphDriver" 936 RootFS: 937 type: "object" 938 properties: 939 Type: 940 type: "string" 941 Layers: 942 type: "array" 943 items: 944 type: "string" 945 946 ImageSummary: 947 type: "object" 948 required: 949 - Id 950 - ParentId 951 - RepoTags 952 - RepoDigests 953 - Created 954 - Size 955 - SharedSize 956 - VirtualSize 957 - Labels 958 - Containers 959 properties: 960 Id: 961 type: "string" 962 x-nullable: false 963 ParentId: 964 type: "string" 965 x-nullable: false 966 RepoTags: 967 type: "array" 968 x-nullable: false 969 items: 970 type: "string" 971 RepoDigests: 972 type: "array" 973 x-nullable: false 974 items: 975 type: "string" 976 Created: 977 type: "integer" 978 x-nullable: false 979 Size: 980 type: "integer" 981 x-nullable: false 982 SharedSize: 983 type: "integer" 984 x-nullable: false 985 VirtualSize: 986 type: "integer" 987 x-nullable: false 988 Labels: 989 type: "object" 990 x-nullable: false 991 additionalProperties: 992 type: "string" 993 Containers: 994 x-nullable: false 995 type: "integer" 996 997 AuthConfig: 998 type: "object" 999 properties: 1000 username: 1001 type: "string" 1002 password: 1003 type: "string" 1004 email: 1005 type: "string" 1006 serveraddress: 1007 type: "string" 1008 example: 1009 username: "hannibal" 1010 password: "xxxx" 1011 serveraddress: "https://index.docker.io/v1/" 1012 1013 ProcessConfig: 1014 type: "object" 1015 properties: 1016 privileged: 1017 type: "boolean" 1018 user: 1019 type: "string" 1020 tty: 1021 type: "boolean" 1022 entrypoint: 1023 type: "string" 1024 arguments: 1025 type: "array" 1026 items: 1027 type: "string" 1028 1029 Volume: 1030 type: "object" 1031 required: [Name, Driver, Mountpoint, Labels, Scope, Options] 1032 properties: 1033 Name: 1034 type: "string" 1035 description: "Name of the volume." 1036 x-nullable: false 1037 Driver: 1038 type: "string" 1039 description: "Name of the volume driver used by the volume." 1040 x-nullable: false 1041 Mountpoint: 1042 type: "string" 1043 description: "Mount path of the volume on the host." 1044 x-nullable: false 1045 Status: 1046 type: "object" 1047 description: | 1048 Low-level details about the volume, provided by the volume driver. 1049 Details are returned as a map with key/value pairs: 1050 `{"key":"value","key2":"value2"}`. 1051 1052 The `Status` field is optional, and is omitted if the volume driver 1053 does not support this feature. 1054 additionalProperties: 1055 type: "object" 1056 Labels: 1057 type: "object" 1058 description: "User-defined key/value metadata." 1059 x-nullable: false 1060 additionalProperties: 1061 type: "string" 1062 Scope: 1063 type: "string" 1064 description: "The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level." 1065 default: "local" 1066 x-nullable: false 1067 enum: ["local", "global"] 1068 Options: 1069 type: "object" 1070 description: "The driver specific options used when creating the volume." 1071 additionalProperties: 1072 type: "string" 1073 UsageData: 1074 type: "object" 1075 required: [Size, RefCount] 1076 properties: 1077 Size: 1078 type: "integer" 1079 description: "The disk space used by the volume (local driver only)" 1080 default: -1 1081 x-nullable: false 1082 RefCount: 1083 type: "integer" 1084 default: -1 1085 description: "The number of containers referencing this volume." 1086 x-nullable: false 1087 1088 example: 1089 Name: "tardis" 1090 Driver: "custom" 1091 Mountpoint: "/var/lib/docker/volumes/tardis" 1092 Status: 1093 hello: "world" 1094 Labels: 1095 com.example.some-label: "some-value" 1096 com.example.some-other-label: "some-other-value" 1097 Scope: "local" 1098 1099 Network: 1100 type: "object" 1101 properties: 1102 Name: 1103 type: "string" 1104 Id: 1105 type: "string" 1106 Created: 1107 type: "string" 1108 format: "dateTime" 1109 Scope: 1110 type: "string" 1111 Driver: 1112 type: "string" 1113 EnableIPv6: 1114 type: "boolean" 1115 IPAM: 1116 $ref: "#/definitions/IPAM" 1117 Internal: 1118 type: "boolean" 1119 Attachable: 1120 type: "boolean" 1121 Containers: 1122 type: "object" 1123 additionalProperties: 1124 $ref: "#/definitions/NetworkContainer" 1125 Options: 1126 type: "object" 1127 additionalProperties: 1128 type: "string" 1129 Labels: 1130 type: "object" 1131 additionalProperties: 1132 type: "string" 1133 example: 1134 Name: "net01" 1135 Id: "7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99" 1136 Created: "2016-10-19T04:33:30.360899459Z" 1137 Scope: "local" 1138 Driver: "bridge" 1139 EnableIPv6: false 1140 IPAM: 1141 Driver: "default" 1142 Config: 1143 - Subnet: "172.19.0.0/16" 1144 Gateway: "172.19.0.1" 1145 Options: 1146 foo: "bar" 1147 Internal: false 1148 Attachable: false 1149 Containers: 1150 19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c: 1151 Name: "test" 1152 EndpointID: "628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a" 1153 MacAddress: "02:42:ac:13:00:02" 1154 IPv4Address: "172.19.0.2/16" 1155 IPv6Address: "" 1156 Options: 1157 com.docker.network.bridge.default_bridge: "true" 1158 com.docker.network.bridge.enable_icc: "true" 1159 com.docker.network.bridge.enable_ip_masquerade: "true" 1160 com.docker.network.bridge.host_binding_ipv4: "0.0.0.0" 1161 com.docker.network.bridge.name: "docker0" 1162 com.docker.network.driver.mtu: "1500" 1163 Labels: 1164 com.example.some-label: "some-value" 1165 com.example.some-other-label: "some-other-value" 1166 IPAM: 1167 type: "object" 1168 properties: 1169 Driver: 1170 description: "Name of the IPAM driver to use." 1171 type: "string" 1172 default: "default" 1173 Config: 1174 description: "List of IPAM configuration options, specified as a map: `{\"Subnet\": <CIDR>, \"IPRange\": <CIDR>, \"Gateway\": <IP address>, \"AuxAddress\": <device_name:IP address>}`" 1175 type: "array" 1176 items: 1177 type: "object" 1178 additionalProperties: 1179 type: "string" 1180 Options: 1181 description: "Driver-specific options, specified as a map." 1182 type: "array" 1183 items: 1184 type: "object" 1185 additionalProperties: 1186 type: "string" 1187 NetworkContainer: 1188 type: "object" 1189 properties: 1190 EndpointID: 1191 type: "string" 1192 MacAddress: 1193 type: "string" 1194 IPv4Address: 1195 type: "string" 1196 IPv6Address: 1197 type: "string" 1198 1199 BuildInfo: 1200 type: "object" 1201 properties: 1202 id: 1203 type: "string" 1204 stream: 1205 type: "string" 1206 error: 1207 type: "string" 1208 errorDetail: 1209 $ref: "#/definitions/ErrorDetail" 1210 status: 1211 type: "string" 1212 progress: 1213 type: "string" 1214 progressDetail: 1215 $ref: "#/definitions/ProgressDetail" 1216 1217 CreateImageInfo: 1218 type: "object" 1219 properties: 1220 error: 1221 type: "string" 1222 status: 1223 type: "string" 1224 progress: 1225 type: "string" 1226 progressDetail: 1227 $ref: "#/definitions/ProgressDetail" 1228 1229 PushImageInfo: 1230 type: "object" 1231 properties: 1232 error: 1233 type: "string" 1234 status: 1235 type: "string" 1236 progress: 1237 type: "string" 1238 progressDetail: 1239 $ref: "#/definitions/ProgressDetail" 1240 ErrorDetail: 1241 type: "object" 1242 properties: 1243 code: 1244 type: "integer" 1245 message: 1246 type: "string" 1247 ProgressDetail: 1248 type: "object" 1249 properties: 1250 code: 1251 type: "integer" 1252 message: 1253 type: "integer" 1254 1255 ErrorResponse: 1256 description: "Represents an error." 1257 type: "object" 1258 required: ["message"] 1259 properties: 1260 message: 1261 description: "The error message." 1262 type: "string" 1263 x-nullable: false 1264 example: 1265 message: "Something went wrong." 1266 1267 IdResponse: 1268 description: "Response to an API call that returns just an Id" 1269 type: "object" 1270 required: ["Id"] 1271 properties: 1272 Id: 1273 description: "The id of the newly created object." 1274 type: "string" 1275 x-nullable: false 1276 1277 EndpointSettings: 1278 description: "Configuration for a network endpoint." 1279 type: "object" 1280 properties: 1281 IPAMConfig: 1282 description: "IPAM configurations for the endpoint" 1283 type: "object" 1284 properties: 1285 IPv4Address: 1286 type: "string" 1287 IPv6Address: 1288 type: "string" 1289 LinkLocalIPs: 1290 type: "array" 1291 items: 1292 type: "string" 1293 Links: 1294 type: "array" 1295 items: 1296 type: "string" 1297 Aliases: 1298 type: "array" 1299 items: 1300 type: "string" 1301 NetworkID: 1302 type: "string" 1303 EndpointID: 1304 type: "string" 1305 Gateway: 1306 type: "string" 1307 IPAddress: 1308 type: "string" 1309 IPPrefixLen: 1310 type: "integer" 1311 IPv6Gateway: 1312 type: "string" 1313 GlobalIPv6Address: 1314 type: "string" 1315 GlobalIPv6PrefixLen: 1316 type: "integer" 1317 format: "int64" 1318 MacAddress: 1319 type: "string" 1320 1321 PluginMount: 1322 type: "object" 1323 x-nullable: false 1324 required: [Name, Description, Settable, Source, Destination, Type, Options] 1325 properties: 1326 Name: 1327 type: "string" 1328 x-nullable: false 1329 Description: 1330 type: "string" 1331 x-nullable: false 1332 Settable: 1333 type: "array" 1334 items: 1335 type: "string" 1336 Source: 1337 type: "string" 1338 Destination: 1339 type: "string" 1340 x-nullable: false 1341 Type: 1342 type: "string" 1343 x-nullable: false 1344 Options: 1345 type: "array" 1346 items: 1347 type: "string" 1348 1349 PluginDevice: 1350 type: "object" 1351 required: [Name, Description, Settable, Path] 1352 x-nullable: false 1353 properties: 1354 Name: 1355 type: "string" 1356 x-nullable: false 1357 Description: 1358 type: "string" 1359 x-nullable: false 1360 Settable: 1361 type: "array" 1362 items: 1363 type: "string" 1364 Path: 1365 type: "string" 1366 1367 PluginEnv: 1368 type: "object" 1369 x-nullable: false 1370 required: [Name, Description, Settable, Value] 1371 properties: 1372 Name: 1373 x-nullable: false 1374 type: "string" 1375 Description: 1376 x-nullable: false 1377 type: "string" 1378 Settable: 1379 type: "array" 1380 items: 1381 type: "string" 1382 Value: 1383 type: "string" 1384 1385 PluginInterfaceType: 1386 type: "object" 1387 x-nullable: false 1388 required: [Prefix, Capability, Version] 1389 properties: 1390 Prefix: 1391 type: "string" 1392 x-nullable: false 1393 Capability: 1394 type: "string" 1395 x-nullable: false 1396 Version: 1397 type: "string" 1398 x-nullable: false 1399 1400 Plugin: 1401 description: "A plugin for the Engine API" 1402 type: "object" 1403 required: [Settings, Enabled, Config, Name] 1404 properties: 1405 Id: 1406 type: "string" 1407 Name: 1408 type: "string" 1409 x-nullable: false 1410 Enabled: 1411 description: "True when the plugin is running. False when the plugin is not running, only installed." 1412 type: "boolean" 1413 x-nullable: false 1414 Settings: 1415 description: "Settings that can be modified by users." 1416 type: "object" 1417 x-nullable: false 1418 required: [Args, Devices, Env, Mounts] 1419 properties: 1420 Mounts: 1421 type: "array" 1422 items: 1423 $ref: "#/definitions/PluginMount" 1424 Env: 1425 type: "array" 1426 items: 1427 type: "string" 1428 Args: 1429 type: "array" 1430 items: 1431 type: "string" 1432 Devices: 1433 type: "array" 1434 items: 1435 $ref: "#/definitions/PluginDevice" 1436 PluginReference: 1437 description: "plugin remote reference used to push/pull the plugin" 1438 type: "string" 1439 x-nullable: false 1440 Config: 1441 description: "The config of a plugin." 1442 type: "object" 1443 x-nullable: false 1444 required: 1445 - Description 1446 - Documentation 1447 - Interface 1448 - Entrypoint 1449 - WorkDir 1450 - Network 1451 - Linux 1452 - PropagatedMount 1453 - Mounts 1454 - Env 1455 - Args 1456 properties: 1457 Description: 1458 type: "string" 1459 x-nullable: false 1460 Documentation: 1461 type: "string" 1462 x-nullable: false 1463 Interface: 1464 description: "The interface between Docker and the plugin" 1465 x-nullable: false 1466 type: "object" 1467 required: [Types, Socket] 1468 properties: 1469 Types: 1470 type: "array" 1471 items: 1472 $ref: "#/definitions/PluginInterfaceType" 1473 Socket: 1474 type: "string" 1475 x-nullable: false 1476 Entrypoint: 1477 type: "array" 1478 items: 1479 type: "string" 1480 WorkDir: 1481 type: "string" 1482 x-nullable: false 1483 User: 1484 type: "object" 1485 x-nullable: false 1486 properties: 1487 UID: 1488 type: "integer" 1489 format: "uint32" 1490 GID: 1491 type: "integer" 1492 format: "uint32" 1493 Network: 1494 type: "object" 1495 x-nullable: false 1496 required: [Type] 1497 properties: 1498 Type: 1499 x-nullable: false 1500 type: "string" 1501 Linux: 1502 type: "object" 1503 x-nullable: false 1504 required: [Capabilities, AllowAllDevices, Devices] 1505 properties: 1506 Capabilities: 1507 type: "array" 1508 items: 1509 type: "string" 1510 AllowAllDevices: 1511 type: "boolean" 1512 x-nullable: false 1513 Devices: 1514 type: "array" 1515 items: 1516 $ref: "#/definitions/PluginDevice" 1517 PropagatedMount: 1518 type: "string" 1519 x-nullable: false 1520 Mounts: 1521 type: "array" 1522 items: 1523 $ref: "#/definitions/PluginMount" 1524 Env: 1525 type: "array" 1526 items: 1527 $ref: "#/definitions/PluginEnv" 1528 Args: 1529 type: "object" 1530 x-nullable: false 1531 required: [Name, Description, Settable, Value] 1532 properties: 1533 Name: 1534 x-nullable: false 1535 type: "string" 1536 Description: 1537 x-nullable: false 1538 type: "string" 1539 Settable: 1540 type: "array" 1541 items: 1542 type: "string" 1543 Value: 1544 type: "array" 1545 items: 1546 type: "string" 1547 rootfs: 1548 type: "object" 1549 properties: 1550 type: 1551 type: "string" 1552 diff_ids: 1553 type: "array" 1554 items: 1555 type: "string" 1556 example: 1557 Id: "5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078" 1558 Name: "tiborvass/sample-volume-plugin" 1559 Tag: "latest" 1560 Active: true 1561 Settings: 1562 Env: 1563 - "DEBUG=0" 1564 Args: null 1565 Devices: null 1566 Config: 1567 Description: "A sample volume plugin for Docker" 1568 Documentation: "https://docs.docker.com/engine/extend/plugins/" 1569 Interface: 1570 Types: 1571 - "docker.volumedriver/1.0" 1572 Socket: "plugins.sock" 1573 Entrypoint: 1574 - "/usr/bin/sample-volume-plugin" 1575 - "/data" 1576 WorkDir: "" 1577 User: {} 1578 Network: 1579 Type: "" 1580 Linux: 1581 Capabilities: null 1582 AllowAllDevices: false 1583 Devices: null 1584 Mounts: null 1585 PropagatedMount: "/data" 1586 Env: 1587 - Name: "DEBUG" 1588 Description: "If set, prints debug messages" 1589 Settable: null 1590 Value: "0" 1591 Args: 1592 Name: "args" 1593 Description: "command line arguments" 1594 Settable: null 1595 Value: [] 1596 1597 ObjectVersion: 1598 description: | 1599 The version number of the object such as node, service, etc. This is needed to avoid conflicting writes. 1600 The client must send the version number along with the modified specification when updating these objects. 1601 This approach ensures safe concurrency and determinism in that the change on the object 1602 may not be applied if the version number has changed from the last read. In other words, 1603 if two update requests specify the same base version, only one of the requests can succeed. 1604 As a result, two separate update requests that happen at the same time will not 1605 unintentially overwrite each other. 1606 type: "object" 1607 properties: 1608 Index: 1609 type: "integer" 1610 format: "int64" 1611 1612 NodeSpec: 1613 type: "object" 1614 properties: 1615 Name: 1616 description: "Name for the node." 1617 type: "string" 1618 Labels: 1619 description: "User-defined key/value metadata." 1620 type: "object" 1621 additionalProperties: 1622 type: "string" 1623 Role: 1624 description: "Role of the node." 1625 type: "string" 1626 enum: 1627 - "worker" 1628 - "manager" 1629 Availability: 1630 description: "Availability of the node." 1631 type: "string" 1632 enum: 1633 - "active" 1634 - "pause" 1635 - "drain" 1636 example: 1637 Availability: "active" 1638 Name: "node-name" 1639 Role: "manager" 1640 Labels: 1641 foo: "bar" 1642 Node: 1643 type: "object" 1644 properties: 1645 ID: 1646 type: "string" 1647 Version: 1648 $ref: "#/definitions/ObjectVersion" 1649 CreatedAt: 1650 type: "string" 1651 format: "dateTime" 1652 UpdatedAt: 1653 type: "string" 1654 format: "dateTime" 1655 Spec: 1656 $ref: "#/definitions/NodeSpec" 1657 Description: 1658 type: "object" 1659 properties: 1660 Hostname: 1661 type: "string" 1662 Platform: 1663 type: "object" 1664 properties: 1665 Architecture: 1666 type: "string" 1667 OS: 1668 type: "string" 1669 Resources: 1670 type: "object" 1671 properties: 1672 NanoCpus: 1673 type: "integer" 1674 format: "int64" 1675 MemoryBytes: 1676 type: "integer" 1677 format: "int64" 1678 Engine: 1679 type: "object" 1680 properties: 1681 EngineVersion: 1682 type: "string" 1683 Labels: 1684 type: "object" 1685 additionalProperties: 1686 type: "string" 1687 Plugins: 1688 type: "array" 1689 items: 1690 type: "object" 1691 properties: 1692 Type: 1693 type: "string" 1694 Name: 1695 type: "string" 1696 example: 1697 ID: "24ifsmvkjbyhk" 1698 Version: 1699 Index: 8 1700 CreatedAt: "2016-06-07T20:31:11.853781916Z" 1701 UpdatedAt: "2016-06-07T20:31:11.999868824Z" 1702 Spec: 1703 Name: "my-node" 1704 Role: "manager" 1705 Availability: "active" 1706 Labels: 1707 foo: "bar" 1708 Description: 1709 Hostname: "bf3067039e47" 1710 Platform: 1711 Architecture: "x86_64" 1712 OS: "linux" 1713 Resources: 1714 NanoCPUs: 4000000000 1715 MemoryBytes: 8272408576 1716 Engine: 1717 EngineVersion: "1.13.0" 1718 Labels: 1719 foo: "bar" 1720 Plugins: 1721 - Type: "Volume" 1722 Name: "local" 1723 - Type: "Network" 1724 Name: "bridge" 1725 - Type: "Network" 1726 Name: "null" 1727 - Type: "Network" 1728 Name: "overlay" 1729 Status: 1730 State: "ready" 1731 Addr: "172.17.0.2" 1732 ManagerStatus: 1733 Leader: true 1734 Reachability: "reachable" 1735 Addr: "172.17.0.2:2377" 1736 SwarmSpec: 1737 description: "User modifiable swarm configuration." 1738 type: "object" 1739 properties: 1740 Name: 1741 description: "Name of the swarm." 1742 type: "string" 1743 Labels: 1744 description: "User-defined key/value metadata." 1745 type: "object" 1746 additionalProperties: 1747 type: "string" 1748 Orchestration: 1749 description: "Orchestration configuration." 1750 type: "object" 1751 properties: 1752 TaskHistoryRetentionLimit: 1753 description: "The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks." 1754 type: "integer" 1755 format: "int64" 1756 Raft: 1757 description: "Raft configuration." 1758 type: "object" 1759 properties: 1760 SnapshotInterval: 1761 description: "The number of log entries between snapshots." 1762 type: "integer" 1763 format: "int64" 1764 KeepOldSnapshots: 1765 description: "The number of snapshots to keep beyond the current snapshot." 1766 type: "integer" 1767 format: "int64" 1768 LogEntriesForSlowFollowers: 1769 description: "The number of log entries to keep around to sync up slow followers after a snapshot is created." 1770 type: "integer" 1771 format: "int64" 1772 ElectionTick: 1773 description: | 1774 The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. `ElectionTick` must be greater than `HeartbeatTick`. 1775 1776 A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed. 1777 type: "integer" 1778 HeartbeatTick: 1779 description: | 1780 The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers. 1781 1782 A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed. 1783 type: "integer" 1784 Dispatcher: 1785 description: "Dispatcher configuration." 1786 type: "object" 1787 properties: 1788 HeartbeatPeriod: 1789 description: "The delay for an agent to send a heartbeat to the dispatcher." 1790 type: "integer" 1791 format: "int64" 1792 CAConfig: 1793 description: "CA configuration." 1794 type: "object" 1795 properties: 1796 NodeCertExpiry: 1797 description: "The duration node certificates are issued for." 1798 type: "integer" 1799 format: "int64" 1800 ExternalCAs: 1801 description: "Configuration for forwarding signing requests to an external certificate authority." 1802 type: "array" 1803 items: 1804 type: "object" 1805 properties: 1806 Protocol: 1807 description: "Protocol for communication with the external CA (currently only `cfssl` is supported)." 1808 type: "string" 1809 enum: 1810 - "cfssl" 1811 default: "cfssl" 1812 URL: 1813 description: "URL where certificate signing requests should be sent." 1814 type: "string" 1815 Options: 1816 description: "An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver." 1817 type: "object" 1818 additionalProperties: 1819 type: "string" 1820 EncryptionConfig: 1821 description: "Parameters related to encryption-at-rest." 1822 type: "object" 1823 properties: 1824 AutoLockManagers: 1825 description: "If set, generate a key and use it to lock data stored on the managers." 1826 type: "boolean" 1827 TaskDefaults: 1828 description: "Defaults for creating tasks in this cluster." 1829 type: "object" 1830 properties: 1831 LogDriver: 1832 description: | 1833 The log driver to use for tasks created in the orchestrator if unspecified by a service. 1834 1835 Updating this value will only have an affect on new tasks. Old tasks will continue use their previously configured log driver until recreated. 1836 type: "object" 1837 properties: 1838 Name: 1839 type: "string" 1840 Options: 1841 type: "object" 1842 additionalProperties: 1843 type: "string" 1844 example: 1845 Name: "default" 1846 Orchestration: 1847 TaskHistoryRetentionLimit: 10 1848 Raft: 1849 SnapshotInterval: 10000 1850 LogEntriesForSlowFollowers: 500 1851 HeartbeatTick: 1 1852 ElectionTick: 3 1853 Dispatcher: 1854 HeartbeatPeriod: 5000000000 1855 CAConfig: 1856 NodeCertExpiry: 7776000000000000 1857 JoinTokens: 1858 Worker: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx" 1859 Manager: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2" 1860 EncryptionConfig: 1861 AutoLockManagers: false 1862 # The Swarm information for `GET /info`. It is the same as `GET /swarm`, but 1863 # without `JoinTokens`. 1864 ClusterInfo: 1865 type: "object" 1866 properties: 1867 ID: 1868 description: "The ID of the swarm." 1869 type: "string" 1870 Version: 1871 $ref: "#/definitions/ObjectVersion" 1872 CreatedAt: 1873 type: "string" 1874 format: "dateTime" 1875 UpdatedAt: 1876 type: "string" 1877 format: "dateTime" 1878 Spec: 1879 $ref: "#/definitions/SwarmSpec" 1880 TaskSpec: 1881 description: "User modifiable task configuration." 1882 type: "object" 1883 properties: 1884 ContainerSpec: 1885 type: "object" 1886 properties: 1887 Image: 1888 description: "The image name to use for the container." 1889 type: "string" 1890 Labels: 1891 description: "User-defined key/value data." 1892 type: "object" 1893 additionalProperties: 1894 type: "string" 1895 Command: 1896 description: "The command to be run in the image." 1897 type: "array" 1898 items: 1899 type: "string" 1900 Args: 1901 description: "Arguments to the command." 1902 type: "array" 1903 items: 1904 type: "string" 1905 Hostname: 1906 description: "The hostname to use for the container, as a valid RFC 1123 hostname." 1907 type: "string" 1908 Env: 1909 description: "A list of environment variables in the form `VAR=value`." 1910 type: "array" 1911 items: 1912 type: "string" 1913 Dir: 1914 description: "The working directory for commands to run in." 1915 type: "string" 1916 User: 1917 description: "The user inside the container." 1918 type: "string" 1919 Groups: 1920 type: "array" 1921 description: "A list of additional groups that the container process will run as." 1922 items: 1923 type: "string" 1924 TTY: 1925 description: "Whether a pseudo-TTY should be allocated." 1926 type: "boolean" 1927 OpenStdin: 1928 description: "Open `stdin`" 1929 type: "boolean" 1930 ReadOnly: 1931 description: "Mount the container's root filesystem as read only." 1932 type: "boolean" 1933 Mounts: 1934 description: "Specification for mounts to be added to containers created as part of the service." 1935 type: "array" 1936 items: 1937 $ref: "#/definitions/Mount" 1938 StopGracePeriod: 1939 description: "Amount of time to wait for the container to terminate before forcefully killing it." 1940 type: "integer" 1941 format: "int64" 1942 HealthCheck: 1943 $ref: "#/definitions/HealthConfig" 1944 Hosts: 1945 type: "array" 1946 description: | 1947 A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. 1948 The format of extra hosts on swarmkit is specified in: 1949 http://man7.org/linux/man-pages/man5/hosts.5.html 1950 IP_address canonical_hostname [aliases...] 1951 items: 1952 type: "string" 1953 DNSConfig: 1954 description: "Specification for DNS related configurations in resolver configuration file (`resolv.conf`)." 1955 type: "object" 1956 properties: 1957 Nameservers: 1958 description: "The IP addresses of the name servers." 1959 type: "array" 1960 items: 1961 type: "string" 1962 Search: 1963 description: "A search list for host-name lookup." 1964 type: "array" 1965 items: 1966 type: "string" 1967 Options: 1968 description: "A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`, etc.)." 1969 type: "array" 1970 items: 1971 type: "string" 1972 Secrets: 1973 description: "Secrets contains references to zero or more secrets that will be exposed to the service." 1974 type: "array" 1975 items: 1976 type: "object" 1977 properties: 1978 File: 1979 description: "File represents a specific target that is backed by a file." 1980 type: "object" 1981 properties: 1982 Name: 1983 description: "Name represents the final filename in the filesystem." 1984 type: "string" 1985 UID: 1986 description: "UID represents the file UID." 1987 type: "string" 1988 GID: 1989 description: "GID represents the file GID." 1990 type: "string" 1991 Mode: 1992 description: "Mode represents the FileMode of the file." 1993 type: "integer" 1994 format: "uint32" 1995 SecretID: 1996 description: "SecretID represents the ID of the specific secret that we're referencing." 1997 type: "string" 1998 SecretName: 1999 description: | 2000 SecretName is the name of the secret that this references, but this is just provided for 2001 lookup/display purposes. The secret in the reference will be identified by its ID. 2002 type: "string" 2003 2004 Resources: 2005 description: "Resource requirements which apply to each individual container created as part of the service." 2006 type: "object" 2007 properties: 2008 Limits: 2009 description: "Define resources limits." 2010 type: "object" 2011 properties: 2012 NanoCPUs: 2013 description: "CPU limit in units of 10<sup>-9</sup> CPU shares." 2014 type: "integer" 2015 format: "int64" 2016 MemoryBytes: 2017 description: "Memory limit in Bytes." 2018 type: "integer" 2019 format: "int64" 2020 Reservations: 2021 description: "Define resources reservation." 2022 properties: 2023 NanoCPUs: 2024 description: "CPU reservation in units of 10<sup>-9</sup> CPU shares." 2025 type: "integer" 2026 format: "int64" 2027 MemoryBytes: 2028 description: "Memory reservation in Bytes." 2029 type: "integer" 2030 format: "int64" 2031 RestartPolicy: 2032 description: "Specification for the restart policy which applies to containers created as part of this service." 2033 type: "object" 2034 properties: 2035 Condition: 2036 description: "Condition for restart." 2037 type: "string" 2038 enum: 2039 - "none" 2040 - "on-failure" 2041 - "any" 2042 Delay: 2043 description: "Delay between restart attempts." 2044 type: "integer" 2045 format: "int64" 2046 MaxAttempts: 2047 description: "Maximum attempts to restart a given container before giving up (default value is 0, which is ignored)." 2048 type: "integer" 2049 format: "int64" 2050 default: 0 2051 Window: 2052 description: "Windows is the time window used to evaluate the restart policy (default value is 0, which is unbounded)." 2053 type: "integer" 2054 format: "int64" 2055 default: 0 2056 Placement: 2057 type: "object" 2058 properties: 2059 Constraints: 2060 description: "An array of constraints." 2061 type: "array" 2062 items: 2063 type: "string" 2064 ForceUpdate: 2065 description: "A counter that triggers an update even if no relevant parameters have been changed." 2066 type: "integer" 2067 Networks: 2068 type: "array" 2069 items: 2070 type: "object" 2071 properties: 2072 Target: 2073 type: "string" 2074 Aliases: 2075 type: "array" 2076 items: 2077 type: "string" 2078 LogDriver: 2079 description: "Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified." 2080 type: "object" 2081 properties: 2082 Name: 2083 type: "string" 2084 Options: 2085 type: "object" 2086 additionalProperties: 2087 type: "string" 2088 TaskState: 2089 type: "string" 2090 enum: 2091 - "new" 2092 - "allocated" 2093 - "pending" 2094 - "assigned" 2095 - "accepted" 2096 - "preparing" 2097 - "ready" 2098 - "starting" 2099 - "running" 2100 - "complete" 2101 - "shutdown" 2102 - "failed" 2103 - "rejected" 2104 Task: 2105 type: "object" 2106 properties: 2107 ID: 2108 description: "The ID of the task." 2109 type: "string" 2110 Version: 2111 $ref: "#/definitions/ObjectVersion" 2112 CreatedAt: 2113 type: "string" 2114 format: "dateTime" 2115 UpdatedAt: 2116 type: "string" 2117 format: "dateTime" 2118 Name: 2119 description: "Name of the task." 2120 type: "string" 2121 Labels: 2122 description: "User-defined key/value metadata." 2123 type: "object" 2124 additionalProperties: 2125 type: "string" 2126 Spec: 2127 $ref: "#/definitions/TaskSpec" 2128 ServiceID: 2129 description: "The ID of the service this task is part of." 2130 type: "string" 2131 Slot: 2132 type: "integer" 2133 NodeID: 2134 description: "The ID of the node that this task is on." 2135 type: "string" 2136 Status: 2137 type: "object" 2138 properties: 2139 Timestamp: 2140 type: "string" 2141 format: "dateTime" 2142 State: 2143 $ref: "#/definitions/TaskState" 2144 Message: 2145 type: "string" 2146 Err: 2147 type: "string" 2148 ContainerStatus: 2149 type: "object" 2150 properties: 2151 ContainerID: 2152 type: "string" 2153 PID: 2154 type: "integer" 2155 ExitCode: 2156 type: "integer" 2157 DesiredState: 2158 $ref: "#/definitions/TaskState" 2159 example: 2160 ID: "0kzzo1i0y4jz6027t0k7aezc7" 2161 Version: 2162 Index: 71 2163 CreatedAt: "2016-06-07T21:07:31.171892745Z" 2164 UpdatedAt: "2016-06-07T21:07:31.376370513Z" 2165 Spec: 2166 ContainerSpec: 2167 Image: "redis" 2168 Resources: 2169 Limits: {} 2170 Reservations: {} 2171 RestartPolicy: 2172 Condition: "any" 2173 MaxAttempts: 0 2174 Placement: {} 2175 ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz" 2176 Slot: 1 2177 NodeID: "60gvrl6tm78dmak4yl7srz94v" 2178 Status: 2179 Timestamp: "2016-06-07T21:07:31.290032978Z" 2180 State: "running" 2181 Message: "started" 2182 ContainerStatus: 2183 ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035" 2184 PID: 677 2185 DesiredState: "running" 2186 NetworksAttachments: 2187 - Network: 2188 ID: "4qvuz4ko70xaltuqbt8956gd1" 2189 Version: 2190 Index: 18 2191 CreatedAt: "2016-06-07T20:31:11.912919752Z" 2192 UpdatedAt: "2016-06-07T21:07:29.955277358Z" 2193 Spec: 2194 Name: "ingress" 2195 Labels: 2196 com.docker.swarm.internal: "true" 2197 DriverConfiguration: {} 2198 IPAMOptions: 2199 Driver: {} 2200 Configs: 2201 - Subnet: "10.255.0.0/16" 2202 Gateway: "10.255.0.1" 2203 DriverState: 2204 Name: "overlay" 2205 Options: 2206 com.docker.network.driver.overlay.vxlanid_list: "256" 2207 IPAMOptions: 2208 Driver: 2209 Name: "default" 2210 Configs: 2211 - Subnet: "10.255.0.0/16" 2212 Gateway: "10.255.0.1" 2213 Addresses: 2214 - "10.255.0.10/16" 2215 ServiceSpec: 2216 description: "User modifiable configuration for a service." 2217 type: object 2218 properties: 2219 Name: 2220 description: "Name of the service." 2221 type: "string" 2222 Labels: 2223 description: "User-defined key/value metadata." 2224 type: "object" 2225 additionalProperties: 2226 type: "string" 2227 TaskTemplate: 2228 $ref: "#/definitions/TaskSpec" 2229 Mode: 2230 description: "Scheduling mode for the service." 2231 type: "object" 2232 properties: 2233 Replicated: 2234 type: "object" 2235 properties: 2236 Replicas: 2237 type: "integer" 2238 format: "int64" 2239 Global: 2240 type: "object" 2241 UpdateConfig: 2242 description: "Specification for the update strategy of the service." 2243 type: "object" 2244 properties: 2245 Parallelism: 2246 description: "Maximum number of tasks to be updated in one iteration (0 means unlimited parallelism)." 2247 type: "integer" 2248 format: "int64" 2249 Delay: 2250 description: "Amount of time between updates, in nanoseconds." 2251 type: "integer" 2252 format: "int64" 2253 FailureAction: 2254 description: "Action to take if an updated task fails to run, or stops running during the update." 2255 type: "string" 2256 enum: 2257 - "continue" 2258 - "pause" 2259 Monitor: 2260 description: "Amount of time to monitor each updated task for failures, in nanoseconds." 2261 type: "integer" 2262 format: "int64" 2263 MaxFailureRatio: 2264 description: "The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1." 2265 type: "number" 2266 default: 0 2267 Networks: 2268 description: "Array of network names or IDs to attach the service to." 2269 type: "array" 2270 items: 2271 type: "object" 2272 properties: 2273 Target: 2274 type: "string" 2275 Aliases: 2276 type: "array" 2277 items: 2278 type: "string" 2279 EndpointSpec: 2280 $ref: "#/definitions/EndpointSpec" 2281 EndpointPortConfig: 2282 type: "object" 2283 properties: 2284 Name: 2285 type: "string" 2286 Protocol: 2287 type: "string" 2288 enum: 2289 - "tcp" 2290 - "udp" 2291 TargetPort: 2292 description: "The port inside the container." 2293 type: "integer" 2294 PublishedPort: 2295 description: "The port on the swarm hosts." 2296 type: "integer" 2297 EndpointSpec: 2298 description: "Properties that can be configured to access and load balance a service." 2299 type: "object" 2300 properties: 2301 Mode: 2302 description: "The mode of resolution to use for internal load balancing 2303 between tasks." 2304 type: "string" 2305 enum: 2306 - "vip" 2307 - "dnsrr" 2308 default: "vip" 2309 Ports: 2310 description: "List of exposed ports that this service is accessible on from the outside. Ports can only be provided if `vip` resolution mode is used." 2311 type: "array" 2312 items: 2313 $ref: "#/definitions/EndpointPortConfig" 2314 Service: 2315 type: "object" 2316 properties: 2317 ID: 2318 type: "string" 2319 Version: 2320 $ref: "#/definitions/ObjectVersion" 2321 CreatedAt: 2322 type: "string" 2323 format: "dateTime" 2324 UpdatedAt: 2325 type: "string" 2326 format: "dateTime" 2327 Spec: 2328 $ref: "#/definitions/ServiceSpec" 2329 Endpoint: 2330 type: "object" 2331 properties: 2332 Spec: 2333 $ref: "#/definitions/EndpointSpec" 2334 Ports: 2335 type: "array" 2336 items: 2337 $ref: "#/definitions/EndpointPortConfig" 2338 VirtualIPs: 2339 type: "array" 2340 items: 2341 type: "object" 2342 properties: 2343 NetworkID: 2344 type: "string" 2345 Addr: 2346 type: "string" 2347 UpdateStatus: 2348 description: "The status of a service update." 2349 type: "object" 2350 properties: 2351 State: 2352 type: "string" 2353 enum: 2354 - "updating" 2355 - "paused" 2356 - "completed" 2357 StartedAt: 2358 type: "string" 2359 format: "dateTime" 2360 CompletedAt: 2361 type: "string" 2362 format: "dateTime" 2363 Message: 2364 type: "string" 2365 example: 2366 ID: "9mnpnzenvg8p8tdbtq4wvbkcz" 2367 Version: 2368 Index: 19 2369 CreatedAt: "2016-06-07T21:05:51.880065305Z" 2370 UpdatedAt: "2016-06-07T21:07:29.962229872Z" 2371 Spec: 2372 Name: "hopeful_cori" 2373 TaskTemplate: 2374 ContainerSpec: 2375 Image: "redis" 2376 Resources: 2377 Limits: {} 2378 Reservations: {} 2379 RestartPolicy: 2380 Condition: "any" 2381 MaxAttempts: 0 2382 Placement: {} 2383 ForceUpdate: 0 2384 Mode: 2385 Replicated: 2386 Replicas: 1 2387 UpdateConfig: 2388 Parallelism: 1 2389 FailureAction: "pause" 2390 Monitor: 15000000000 2391 MaxFailureRatio: 0.15 2392 EndpointSpec: 2393 Mode: "vip" 2394 Ports: 2395 - 2396 Protocol: "tcp" 2397 TargetPort: 6379 2398 PublishedPort: 30001 2399 Endpoint: 2400 Spec: 2401 Mode: "vip" 2402 Ports: 2403 - 2404 Protocol: "tcp" 2405 TargetPort: 6379 2406 PublishedPort: 30001 2407 Ports: 2408 - 2409 Protocol: "tcp" 2410 TargetPort: 6379 2411 PublishedPort: 30001 2412 VirtualIPs: 2413 - 2414 NetworkID: "4qvuz4ko70xaltuqbt8956gd1" 2415 Addr: "10.255.0.2/16" 2416 - 2417 NetworkID: "4qvuz4ko70xaltuqbt8956gd1" 2418 Addr: "10.255.0.3/16" 2419 ImageDeleteResponse: 2420 type: "object" 2421 properties: 2422 Untagged: 2423 description: "The image ID of an image that was untagged" 2424 type: "string" 2425 Deleted: 2426 description: "The image ID of an image that was deleted" 2427 type: "string" 2428 ServiceUpdateResponse: 2429 type: "object" 2430 properties: 2431 Warnings: 2432 description: "Optional warning messages" 2433 type: "array" 2434 items: 2435 type: "string" 2436 example: 2437 Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" 2438 ContainerSummary: 2439 type: "array" 2440 items: 2441 type: "object" 2442 properties: 2443 Id: 2444 description: "The ID of this container" 2445 type: "string" 2446 x-go-name: "ID" 2447 Names: 2448 description: "The names that this container has been given" 2449 type: "array" 2450 items: 2451 type: "string" 2452 Image: 2453 description: "The name of the image used when creating this container" 2454 type: "string" 2455 ImageID: 2456 description: "The ID of the image that this container was created from" 2457 type: "string" 2458 Command: 2459 description: "Command to run when starting the container" 2460 type: "string" 2461 Created: 2462 description: "When the container was created" 2463 type: "integer" 2464 format: "int64" 2465 Ports: 2466 description: "The ports exposed by this container" 2467 type: "array" 2468 items: 2469 $ref: "#/definitions/Port" 2470 SizeRw: 2471 description: "The size of files that have been created or changed by this container" 2472 type: "integer" 2473 format: "int64" 2474 SizeRootFs: 2475 description: "The total size of all the files in this container" 2476 type: "integer" 2477 format: "int64" 2478 Labels: 2479 description: "User-defined key/value metadata." 2480 type: "object" 2481 additionalProperties: 2482 type: "string" 2483 State: 2484 description: "The state of this container (e.g. `Exited`)" 2485 type: "string" 2486 Status: 2487 description: "Additional human-readable status of this container (e.g. `Exit 0`)" 2488 type: "string" 2489 HostConfig: 2490 type: "object" 2491 properties: 2492 NetworkMode: 2493 type: "string" 2494 NetworkSettings: 2495 description: "A summary of the container's network settings" 2496 type: "object" 2497 properties: 2498 Networks: 2499 type: "object" 2500 additionalProperties: 2501 $ref: "#/definitions/EndpointSettings" 2502 Mounts: 2503 type: "array" 2504 items: 2505 $ref: "#/definitions/MountPoint" 2506 SecretSpec: 2507 type: "object" 2508 properties: 2509 Name: 2510 description: "User-defined name of the secret." 2511 type: "string" 2512 Labels: 2513 description: "User-defined key/value metadata." 2514 type: "object" 2515 additionalProperties: 2516 type: "string" 2517 Data: 2518 description: "Base64-url-safe-encoded secret data" 2519 type: "array" 2520 items: 2521 type: "string" 2522 Secret: 2523 type: "object" 2524 properties: 2525 ID: 2526 type: "string" 2527 Version: 2528 $ref: "#/definitions/ObjectVersion" 2529 CreatedAt: 2530 type: "string" 2531 format: "dateTime" 2532 UpdatedAt: 2533 type: "string" 2534 format: "dateTime" 2535 Spec: 2536 $ref: "#/definitions/ServiceSpec" 2537 paths: 2538 /containers/json: 2539 get: 2540 summary: "List containers" 2541 operationId: "ContainerList" 2542 produces: 2543 - "application/json" 2544 parameters: 2545 - name: "all" 2546 in: "query" 2547 description: "Return all containers. By default, only running containers are shown" 2548 type: "boolean" 2549 default: false 2550 - name: "limit" 2551 in: "query" 2552 description: "Return this number of most recently created containers, including non-running ones." 2553 type: "integer" 2554 - name: "size" 2555 in: "query" 2556 description: "Return the size of container as fields `SizeRw` and `SizeRootFs`." 2557 type: "boolean" 2558 default: false 2559 - name: "filters" 2560 in: "query" 2561 description: | 2562 Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{"status": ["paused"]}` will only return paused containers. Available filters: 2563 2564 - `ancestor`=(`<image-name>[:<tag>]`, `<image id>`, or `<image@digest>`) 2565 - `before`=(`<container id>` or `<container name>`) 2566 - `exited=<int>` containers with exit code of `<int>` 2567 - `health`=(`starting`|`healthy`|`unhealthy`|`none`) 2568 - `id=<ID>` a container's ID 2569 - `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only) 2570 - `is-task=`(`true`|`false`) 2571 - `label=key` or `label="key=value"` of a container label 2572 - `name=<name>` a container's name 2573 - `network`=(`<network id>` or `<network name>`) 2574 - `since`=(`<container id>` or `<container name>`) 2575 - `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`) 2576 - `volume`=(`<volume name>` or `<mount point destination>`) 2577 type: "string" 2578 responses: 2579 200: 2580 description: "no error" 2581 schema: 2582 $ref: "#/definitions/ContainerSummary" 2583 examples: 2584 application/json: 2585 - Id: "8dfafdbc3a40" 2586 Names: 2587 - "/boring_feynman" 2588 Image: "ubuntu:latest" 2589 ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82" 2590 Command: "echo 1" 2591 Created: 1367854155 2592 State: "Exited" 2593 Status: "Exit 0" 2594 Ports: 2595 - PrivatePort: 2222 2596 PublicPort: 3333 2597 Type: "tcp" 2598 Labels: 2599 com.example.vendor: "Acme" 2600 com.example.license: "GPL" 2601 com.example.version: "1.0" 2602 SizeRw: 12288 2603 SizeRootFs: 0 2604 HostConfig: 2605 NetworkMode: "default" 2606 NetworkSettings: 2607 Networks: 2608 bridge: 2609 NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" 2610 EndpointID: "2cdc4edb1ded3631c81f57966563e5c8525b81121bb3706a9a9a3ae102711f3f" 2611 Gateway: "172.17.0.1" 2612 IPAddress: "172.17.0.2" 2613 IPPrefixLen: 16 2614 IPv6Gateway: "" 2615 GlobalIPv6Address: "" 2616 GlobalIPv6PrefixLen: 0 2617 MacAddress: "02:42:ac:11:00:02" 2618 Mounts: 2619 - Name: "fac362...80535" 2620 Source: "/data" 2621 Destination: "/data" 2622 Driver: "local" 2623 Mode: "ro,Z" 2624 RW: false 2625 Propagation: "" 2626 - Id: "9cd87474be90" 2627 Names: 2628 - "/coolName" 2629 Image: "ubuntu:latest" 2630 ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82" 2631 Command: "echo 222222" 2632 Created: 1367854155 2633 State: "Exited" 2634 Status: "Exit 0" 2635 Ports: [] 2636 Labels: {} 2637 SizeRw: 12288 2638 SizeRootFs: 0 2639 HostConfig: 2640 NetworkMode: "default" 2641 NetworkSettings: 2642 Networks: 2643 bridge: 2644 NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" 2645 EndpointID: "88eaed7b37b38c2a3f0c4bc796494fdf51b270c2d22656412a2ca5d559a64d7a" 2646 Gateway: "172.17.0.1" 2647 IPAddress: "172.17.0.8" 2648 IPPrefixLen: 16 2649 IPv6Gateway: "" 2650 GlobalIPv6Address: "" 2651 GlobalIPv6PrefixLen: 0 2652 MacAddress: "02:42:ac:11:00:08" 2653 Mounts: [] 2654 - Id: "3176a2479c92" 2655 Names: 2656 - "/sleepy_dog" 2657 Image: "ubuntu:latest" 2658 ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82" 2659 Command: "echo 3333333333333333" 2660 Created: 1367854154 2661 State: "Exited" 2662 Status: "Exit 0" 2663 Ports: [] 2664 Labels: {} 2665 SizeRw: 12288 2666 SizeRootFs: 0 2667 HostConfig: 2668 NetworkMode: "default" 2669 NetworkSettings: 2670 Networks: 2671 bridge: 2672 NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" 2673 EndpointID: "8b27c041c30326d59cd6e6f510d4f8d1d570a228466f956edf7815508f78e30d" 2674 Gateway: "172.17.0.1" 2675 IPAddress: "172.17.0.6" 2676 IPPrefixLen: 16 2677 IPv6Gateway: "" 2678 GlobalIPv6Address: "" 2679 GlobalIPv6PrefixLen: 0 2680 MacAddress: "02:42:ac:11:00:06" 2681 Mounts: [] 2682 - Id: "4cb07b47f9fb" 2683 Names: 2684 - "/running_cat" 2685 Image: "ubuntu:latest" 2686 ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82" 2687 Command: "echo 444444444444444444444444444444444" 2688 Created: 1367854152 2689 State: "Exited" 2690 Status: "Exit 0" 2691 Ports: [] 2692 Labels: {} 2693 SizeRw: 12288 2694 SizeRootFs: 0 2695 HostConfig: 2696 NetworkMode: "default" 2697 NetworkSettings: 2698 Networks: 2699 bridge: 2700 NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" 2701 EndpointID: "d91c7b2f0644403d7ef3095985ea0e2370325cd2332ff3a3225c4247328e66e9" 2702 Gateway: "172.17.0.1" 2703 IPAddress: "172.17.0.5" 2704 IPPrefixLen: 16 2705 IPv6Gateway: "" 2706 GlobalIPv6Address: "" 2707 GlobalIPv6PrefixLen: 0 2708 MacAddress: "02:42:ac:11:00:05" 2709 Mounts: [] 2710 400: 2711 description: "bad parameter" 2712 schema: 2713 $ref: "#/definitions/ErrorResponse" 2714 500: 2715 description: "server error" 2716 schema: 2717 $ref: "#/definitions/ErrorResponse" 2718 tags: ["Container"] 2719 /containers/create: 2720 post: 2721 summary: "Create a container" 2722 operationId: "ContainerCreate" 2723 consumes: 2724 - "application/json" 2725 - "application/octet-stream" 2726 produces: 2727 - "application/json" 2728 parameters: 2729 - name: "name" 2730 in: "query" 2731 description: "Assign the specified name to the container. Must match `/?[a-zA-Z0-9_-]+`." 2732 type: "string" 2733 pattern: "/?[a-zA-Z0-9_-]+" 2734 - name: "body" 2735 in: "body" 2736 description: "Container to create" 2737 schema: 2738 allOf: 2739 - $ref: "#/definitions/Config" 2740 - type: "object" 2741 properties: 2742 HostConfig: 2743 $ref: "#/definitions/HostConfig" 2744 NetworkingConfig: 2745 description: "This container's networking configuration." 2746 type: "object" 2747 properties: 2748 EndpointsConfig: 2749 description: "A mapping of network name to endpoint configuration for that network." 2750 type: "object" 2751 additionalProperties: 2752 $ref: "#/definitions/EndpointSettings" 2753 example: 2754 Hostname: "" 2755 Domainname: "" 2756 User: "" 2757 AttachStdin: false 2758 AttachStdout: true 2759 AttachStderr: true 2760 Tty: false 2761 OpenStdin: false 2762 StdinOnce: false 2763 Env: 2764 - "FOO=bar" 2765 - "BAZ=quux" 2766 Cmd: 2767 - "date" 2768 Entrypoint: "" 2769 Image: "ubuntu" 2770 Labels: 2771 com.example.vendor: "Acme" 2772 com.example.license: "GPL" 2773 com.example.version: "1.0" 2774 Volumes: 2775 /volumes/data: {} 2776 WorkingDir: "" 2777 NetworkDisabled: false 2778 MacAddress: "12:34:56:78:9a:bc" 2779 ExposedPorts: 2780 22/tcp: {} 2781 StopSignal: "SIGTERM" 2782 StopTimeout: 10 2783 HostConfig: 2784 Binds: 2785 - "/tmp:/tmp" 2786 Links: 2787 - "redis3:redis" 2788 Memory: 0 2789 MemorySwap: 0 2790 MemoryReservation: 0 2791 KernelMemory: 0 2792 NanoCpus: 500000 2793 CpuPercent: 80 2794 CpuShares: 512 2795 CpuPeriod: 100000 2796 CpuRealtimePeriod: 1000000 2797 CpuRealtimeRuntime: 10000 2798 CpuQuota: 50000 2799 CpusetCpus: "0,1" 2800 CpusetMems: "0,1" 2801 MaximumIOps: 0 2802 MaximumIOBps: 0 2803 BlkioWeight: 300 2804 BlkioWeightDevice: 2805 - {} 2806 BlkioDeviceReadBps: 2807 - {} 2808 BlkioDeviceReadIOps: 2809 - {} 2810 BlkioDeviceWriteBps: 2811 - {} 2812 BlkioDeviceWriteIOps: 2813 - {} 2814 MemorySwappiness: 60 2815 OomKillDisable: false 2816 OomScoreAdj: 500 2817 PidMode: "" 2818 PidsLimit: -1 2819 PortBindings: 2820 22/tcp: 2821 - HostPort: "11022" 2822 PublishAllPorts: false 2823 Privileged: false 2824 ReadonlyRootfs: false 2825 Dns: 2826 - "8.8.8.8" 2827 DnsOptions: 2828 - "" 2829 DnsSearch: 2830 - "" 2831 VolumesFrom: 2832 - "parent" 2833 - "other:ro" 2834 CapAdd: 2835 - "NET_ADMIN" 2836 CapDrop: 2837 - "MKNOD" 2838 GroupAdd: 2839 - "newgroup" 2840 RestartPolicy: 2841 Name: "" 2842 MaximumRetryCount: 0 2843 AutoRemove: true 2844 NetworkMode: "bridge" 2845 Devices: [] 2846 Ulimits: 2847 - {} 2848 LogConfig: 2849 Type: "json-file" 2850 Config: {} 2851 SecurityOpt: [] 2852 StorageOpt: {} 2853 CgroupParent: "" 2854 VolumeDriver: "" 2855 ShmSize: 67108864 2856 NetworkingConfig: 2857 EndpointsConfig: 2858 isolated_nw: 2859 IPAMConfig: 2860 IPv4Address: "172.20.30.33" 2861 IPv6Address: "2001:db8:abcd::3033" 2862 LinkLocalIPs: 2863 - "169.254.34.68" 2864 - "fe80::3468" 2865 Links: 2866 - "container_1" 2867 - "container_2" 2868 Aliases: 2869 - "server_x" 2870 - "server_y" 2871 2872 required: true 2873 responses: 2874 201: 2875 description: "Container created successfully" 2876 schema: 2877 type: "object" 2878 required: [Id, Warnings] 2879 properties: 2880 Id: 2881 description: "The ID of the created container" 2882 type: "string" 2883 x-nullable: false 2884 Warnings: 2885 description: "Warnings encountered when creating the container" 2886 type: "array" 2887 x-nullable: false 2888 items: 2889 type: "string" 2890 examples: 2891 application/json: 2892 Id: "e90e34656806" 2893 Warnings: [] 2894 400: 2895 description: "bad parameter" 2896 schema: 2897 $ref: "#/definitions/ErrorResponse" 2898 404: 2899 description: "no such image" 2900 schema: 2901 $ref: "#/definitions/ErrorResponse" 2902 examples: 2903 application/json: 2904 message: "No such image: c2ada9df5af8" 2905 406: 2906 description: "impossible to attach" 2907 schema: 2908 $ref: "#/definitions/ErrorResponse" 2909 409: 2910 description: "conflict" 2911 schema: 2912 $ref: "#/definitions/ErrorResponse" 2913 500: 2914 description: "server error" 2915 schema: 2916 $ref: "#/definitions/ErrorResponse" 2917 tags: ["Container"] 2918 /containers/{id}/json: 2919 get: 2920 summary: "Inspect a container" 2921 description: "Return low-level information about a container." 2922 operationId: "ContainerInspect" 2923 produces: 2924 - "application/json" 2925 responses: 2926 200: 2927 description: "no error" 2928 schema: 2929 type: "object" 2930 properties: 2931 Id: 2932 description: "The ID of the container" 2933 type: "string" 2934 Created: 2935 description: "The time the container was created" 2936 type: "string" 2937 Path: 2938 description: "The path to the command being run" 2939 type: "string" 2940 Args: 2941 description: "The arguments to the command being run" 2942 type: "array" 2943 items: 2944 type: "string" 2945 State: 2946 description: "The state of the container." 2947 type: "object" 2948 properties: 2949 Status: 2950 description: "The status of the container. For example, `running` or `exited`." 2951 type: "string" 2952 Running: 2953 description: "Whether this container is running." 2954 type: "boolean" 2955 Paused: 2956 description: "Whether this container is paused." 2957 type: "boolean" 2958 Restarting: 2959 description: "Whether this container is restarting." 2960 type: "boolean" 2961 OOMKilled: 2962 description: "Whether this container has been killed because it ran out of memory." 2963 type: "boolean" 2964 Dead: 2965 type: "boolean" 2966 Pid: 2967 description: "The process ID of this container" 2968 type: "integer" 2969 ExitCode: 2970 description: "The last exit code of this container" 2971 type: "integer" 2972 Error: 2973 type: "string" 2974 StartedAt: 2975 description: "The time when this container was last started." 2976 type: "string" 2977 FinishedAt: 2978 description: "The time when this container last exited." 2979 type: "string" 2980 Image: 2981 description: "The container's image" 2982 type: "string" 2983 ResolvConfPath: 2984 type: "string" 2985 HostnamePath: 2986 type: "string" 2987 HostsPath: 2988 type: "string" 2989 LogPath: 2990 type: "string" 2991 Node: 2992 description: "TODO" 2993 type: "object" 2994 Name: 2995 type: "string" 2996 RestartCount: 2997 type: "integer" 2998 Driver: 2999 type: "string" 3000 MountLabel: 3001 type: "string" 3002 ProcessLabel: 3003 type: "string" 3004 AppArmorProfile: 3005 type: "string" 3006 ExecIDs: 3007 type: "string" 3008 HostConfig: 3009 $ref: "#/definitions/HostConfig" 3010 GraphDriver: 3011 $ref: "#/definitions/GraphDriver" 3012 SizeRw: 3013 description: "The size of files that have been created or changed by this container." 3014 type: "integer" 3015 format: "int64" 3016 SizeRootFs: 3017 description: "The total size of all the files in this container." 3018 type: "integer" 3019 format: "int64" 3020 Mounts: 3021 type: "array" 3022 items: 3023 $ref: "#/definitions/MountPoint" 3024 Config: 3025 $ref: "#/definitions/Config" 3026 NetworkSettings: 3027 $ref: "#/definitions/NetworkConfig" 3028 examples: 3029 application/json: 3030 AppArmorProfile: "" 3031 Args: 3032 - "-c" 3033 - "exit 9" 3034 Config: 3035 AttachStderr: true 3036 AttachStdin: false 3037 AttachStdout: true 3038 Cmd: 3039 - "/bin/sh" 3040 - "-c" 3041 - "exit 9" 3042 Domainname: "" 3043 Env: 3044 - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 3045 Hostname: "ba033ac44011" 3046 Image: "ubuntu" 3047 Labels: 3048 com.example.vendor: "Acme" 3049 com.example.license: "GPL" 3050 com.example.version: "1.0" 3051 MacAddress: "" 3052 NetworkDisabled: false 3053 OpenStdin: false 3054 StdinOnce: false 3055 Tty: false 3056 User: "" 3057 Volumes: 3058 /volumes/data: {} 3059 WorkingDir: "" 3060 StopSignal: "SIGTERM" 3061 StopTimeout: 10 3062 Created: "2015-01-06T15:47:31.485331387Z" 3063 Driver: "overlay2" 3064 HostConfig: 3065 MaximumIOps: 0 3066 MaximumIOBps: 0 3067 BlkioWeight: 0 3068 BlkioWeightDevice: 3069 - {} 3070 BlkioDeviceReadBps: 3071 - {} 3072 BlkioDeviceWriteBps: 3073 - {} 3074 BlkioDeviceReadIOps: 3075 - {} 3076 BlkioDeviceWriteIOps: 3077 - {} 3078 ContainerIDFile: "" 3079 CpusetCpus: "" 3080 CpusetMems: "" 3081 CpuPercent: 80 3082 CpuShares: 0 3083 CpuPeriod: 100000 3084 CpuRealtimePeriod: 1000000 3085 CpuRealtimeRuntime: 10000 3086 Devices: [] 3087 IpcMode: "" 3088 Memory: 0 3089 MemorySwap: 0 3090 MemoryReservation: 0 3091 KernelMemory: 0 3092 OomKillDisable: false 3093 OomScoreAdj: 500 3094 NetworkMode: "bridge" 3095 PidMode: "" 3096 PortBindings: {} 3097 Privileged: false 3098 ReadonlyRootfs: false 3099 PublishAllPorts: false 3100 RestartPolicy: 3101 MaximumRetryCount: 2 3102 Name: "on-failure" 3103 LogConfig: 3104 Type: "json-file" 3105 Sysctls: 3106 net.ipv4.ip_forward: "1" 3107 Ulimits: 3108 - {} 3109 VolumeDriver: "" 3110 ShmSize: 67108864 3111 HostnamePath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hostname" 3112 HostsPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hosts" 3113 LogPath: "/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b-json.log" 3114 Id: "ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39" 3115 Image: "04c5d3b7b0656168630d3ba35d8889bd0e9caafcaeb3004d2bfbc47e7c5d35d2" 3116 MountLabel: "" 3117 Name: "/boring_euclid" 3118 NetworkSettings: 3119 Bridge: "" 3120 SandboxID: "" 3121 HairpinMode: false 3122 LinkLocalIPv6Address: "" 3123 LinkLocalIPv6PrefixLen: 0 3124 SandboxKey: "" 3125 SecondaryIPAddresses: null 3126 SecondaryIPv6Addresses: null 3127 EndpointID: "" 3128 Gateway: "" 3129 GlobalIPv6Address: "" 3130 GlobalIPv6PrefixLen: 0 3131 IPAddress: "" 3132 IPPrefixLen: 0 3133 IPv6Gateway: "" 3134 MacAddress: "" 3135 Networks: 3136 bridge: 3137 NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" 3138 EndpointID: "7587b82f0dada3656fda26588aee72630c6fab1536d36e394b2bfbcf898c971d" 3139 Gateway: "172.17.0.1" 3140 IPAddress: "172.17.0.2" 3141 IPPrefixLen: 16 3142 IPv6Gateway: "" 3143 GlobalIPv6Address: "" 3144 GlobalIPv6PrefixLen: 0 3145 MacAddress: "02:42:ac:12:00:02" 3146 Path: "/bin/sh" 3147 ProcessLabel: "" 3148 ResolvConfPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/resolv.conf" 3149 RestartCount: 1 3150 State: 3151 Error: "" 3152 ExitCode: 9 3153 FinishedAt: "2015-01-06T15:47:32.080254511Z" 3154 OOMKilled: false 3155 Dead: false 3156 Paused: false 3157 Pid: 0 3158 Restarting: false 3159 Running: true 3160 StartedAt: "2015-01-06T15:47:32.072697474Z" 3161 Status: "running" 3162 Mounts: 3163 - Name: "fac362...80535" 3164 Source: "/data" 3165 Destination: "/data" 3166 Driver: "local" 3167 Mode: "ro,Z" 3168 RW: false 3169 Propagation: "" 3170 404: 3171 description: "no such container" 3172 schema: 3173 $ref: "#/definitions/ErrorResponse" 3174 examples: 3175 application/json: 3176 message: "No such container: c2ada9df5af8" 3177 500: 3178 description: "server error" 3179 schema: 3180 $ref: "#/definitions/ErrorResponse" 3181 parameters: 3182 - name: "id" 3183 in: "path" 3184 required: true 3185 description: "ID or name of the container" 3186 type: "string" 3187 - name: "size" 3188 in: "query" 3189 type: "boolean" 3190 default: false 3191 description: "Return the size of container as fields `SizeRw` and `SizeRootFs`" 3192 tags: ["Container"] 3193 /containers/{id}/top: 3194 get: 3195 summary: "List processes running inside a container" 3196 description: "On Unix systems, this is done by running the `ps` command. This endpoint is not supported on Windows." 3197 operationId: "ContainerTop" 3198 responses: 3199 200: 3200 description: "no error" 3201 schema: 3202 type: "object" 3203 properties: 3204 Titles: 3205 description: "The ps column titles" 3206 type: "array" 3207 items: 3208 type: "string" 3209 Processes: 3210 description: "Each process running in the container, where each is process is an array of values corresponding to the titles" 3211 type: "array" 3212 items: 3213 type: "array" 3214 items: 3215 type: "string" 3216 examples: 3217 application/json: 3218 Titles: 3219 - "UID" 3220 - "PID" 3221 - "PPID" 3222 - "C" 3223 - "STIME" 3224 - "TTY" 3225 - "TIME" 3226 - "CMD" 3227 Processes: 3228 - 3229 - "root" 3230 - "13642" 3231 - "882" 3232 - "0" 3233 - "17:03" 3234 - "pts/0" 3235 - "00:00:00" 3236 - "/bin/bash" 3237 - 3238 - "root" 3239 - "13735" 3240 - "13642" 3241 - "0" 3242 - "17:06" 3243 - "pts/0" 3244 - "00:00:00" 3245 - "sleep 10" 3246 404: 3247 description: "no such container" 3248 schema: 3249 $ref: "#/definitions/ErrorResponse" 3250 examples: 3251 application/json: 3252 message: "No such container: c2ada9df5af8" 3253 500: 3254 description: "server error" 3255 schema: 3256 $ref: "#/definitions/ErrorResponse" 3257 parameters: 3258 - name: "id" 3259 in: "path" 3260 required: true 3261 description: "ID or name of the container" 3262 type: "string" 3263 - name: "ps_args" 3264 in: "query" 3265 description: "The arguments to pass to `ps`. For example, `aux`" 3266 type: "string" 3267 default: "-ef" 3268 tags: ["Container"] 3269 /containers/{id}/logs: 3270 get: 3271 summary: "Get container logs" 3272 description: | 3273 Get `stdout` and `stderr` logs from a container. 3274 3275 Note: This endpoint works only for containers with the `json-file` or `journald` logging driver. 3276 operationId: "ContainerLogs" 3277 responses: 3278 101: 3279 description: "logs returned as a stream" 3280 schema: 3281 type: "string" 3282 format: "binary" 3283 200: 3284 description: "logs returned as a string in response body" 3285 schema: 3286 type: "string" 3287 404: 3288 description: "no such container" 3289 schema: 3290 $ref: "#/definitions/ErrorResponse" 3291 examples: 3292 application/json: 3293 message: "No such container: c2ada9df5af8" 3294 500: 3295 description: "server error" 3296 schema: 3297 $ref: "#/definitions/ErrorResponse" 3298 parameters: 3299 - name: "id" 3300 in: "path" 3301 required: true 3302 description: "ID or name of the container" 3303 type: "string" 3304 - name: "follow" 3305 in: "query" 3306 description: | 3307 Return the logs as a stream. 3308 3309 This will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach). 3310 type: "boolean" 3311 default: false 3312 - name: "stdout" 3313 in: "query" 3314 description: "Return logs from `stdout`" 3315 type: "boolean" 3316 default: false 3317 - name: "stderr" 3318 in: "query" 3319 description: "Return logs from `stderr`" 3320 type: "boolean" 3321 default: false 3322 - name: "since" 3323 in: "query" 3324 description: "Only return logs since this time, as a UNIX timestamp" 3325 type: "integer" 3326 default: 0 3327 - name: "timestamps" 3328 in: "query" 3329 description: "Add timestamps to every log line" 3330 type: "boolean" 3331 default: false 3332 - name: "tail" 3333 in: "query" 3334 description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines." 3335 type: "string" 3336 default: "all" 3337 tags: ["Container"] 3338 /containers/{id}/changes: 3339 get: 3340 summary: "Get changes on a container’s filesystem" 3341 description: | 3342 Returns which files in a container's filesystem have been added, deleted, or modified. The `Kind` of modification can be one of: 3343 3344 - `0`: Modified 3345 - `1`: Added 3346 - `2`: Deleted 3347 operationId: "ContainerChanges" 3348 produces: 3349 - "application/json" 3350 responses: 3351 200: 3352 description: "no error" 3353 schema: 3354 type: "array" 3355 items: 3356 type: "object" 3357 properties: 3358 Path: 3359 description: "Path to file that has changed" 3360 type: "string" 3361 Kind: 3362 description: "Kind of change" 3363 type: "integer" 3364 enum: 3365 - 0 3366 - 1 3367 - 2 3368 examples: 3369 application/json: 3370 - Path: "/dev" 3371 Kind: 0 3372 - Path: "/dev/kmsg" 3373 Kind: 1 3374 - Path: "/test" 3375 Kind: 1 3376 404: 3377 description: "no such container" 3378 schema: 3379 $ref: "#/definitions/ErrorResponse" 3380 examples: 3381 application/json: 3382 message: "No such container: c2ada9df5af8" 3383 500: 3384 description: "server error" 3385 schema: 3386 $ref: "#/definitions/ErrorResponse" 3387 parameters: 3388 - name: "id" 3389 in: "path" 3390 required: true 3391 description: "ID or name of the container" 3392 type: "string" 3393 tags: ["Container"] 3394 /containers/{id}/export: 3395 get: 3396 summary: "Export a container" 3397 description: "Export the contents of a container as a tarball." 3398 operationId: "ContainerExport" 3399 produces: 3400 - "application/octet-stream" 3401 responses: 3402 200: 3403 description: "no error" 3404 404: 3405 description: "no such container" 3406 schema: 3407 $ref: "#/definitions/ErrorResponse" 3408 examples: 3409 application/json: 3410 message: "No such container: c2ada9df5af8" 3411 500: 3412 description: "server error" 3413 schema: 3414 $ref: "#/definitions/ErrorResponse" 3415 parameters: 3416 - name: "id" 3417 in: "path" 3418 required: true 3419 description: "ID or name of the container" 3420 type: "string" 3421 tags: ["Container"] 3422 /containers/{id}/stats: 3423 get: 3424 summary: "Get container stats based on resource usage" 3425 description: | 3426 This endpoint returns a live stream of a container’s resource usage statistics. 3427 3428 The `precpu_stats` is the CPU statistic of last read, which is used 3429 for calculating the CPU usage percentage. It is not the same as the 3430 `cpu_stats` field. 3431 3432 If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is 3433 nil then for compatibility with older daemons the length of the 3434 corresponding `cpu_usage.percpu_usage` array should be used. 3435 operationId: "ContainerStats" 3436 produces: 3437 - "application/json" 3438 responses: 3439 200: 3440 description: "no error" 3441 schema: 3442 type: "object" 3443 examples: 3444 application/json: 3445 read: "2015-01-08T22:57:31.547920715Z" 3446 pids_stats: 3447 current: 3 3448 networks: 3449 eth0: 3450 rx_bytes: 5338 3451 rx_dropped: 0 3452 rx_errors: 0 3453 rx_packets: 36 3454 tx_bytes: 648 3455 tx_dropped: 0 3456 tx_errors: 0 3457 tx_packets: 8 3458 eth5: 3459 rx_bytes: 4641 3460 rx_dropped: 0 3461 rx_errors: 0 3462 rx_packets: 26 3463 tx_bytes: 690 3464 tx_dropped: 0 3465 tx_errors: 0 3466 tx_packets: 9 3467 memory_stats: 3468 stats: 3469 total_pgmajfault: 0 3470 cache: 0 3471 mapped_file: 0 3472 total_inactive_file: 0 3473 pgpgout: 414 3474 rss: 6537216 3475 total_mapped_file: 0 3476 writeback: 0 3477 unevictable: 0 3478 pgpgin: 477 3479 total_unevictable: 0 3480 pgmajfault: 0 3481 total_rss: 6537216 3482 total_rss_huge: 6291456 3483 total_writeback: 0 3484 total_inactive_anon: 0 3485 rss_huge: 6291456 3486 hierarchical_memory_limit: 67108864 3487 total_pgfault: 964 3488 total_active_file: 0 3489 active_anon: 6537216 3490 total_active_anon: 6537216 3491 total_pgpgout: 414 3492 total_cache: 0 3493 inactive_anon: 0 3494 active_file: 0 3495 pgfault: 964 3496 inactive_file: 0 3497 total_pgpgin: 477 3498 max_usage: 6651904 3499 usage: 6537216 3500 failcnt: 0 3501 limit: 67108864 3502 blkio_stats: {} 3503 cpu_stats: 3504 cpu_usage: 3505 percpu_usage: 3506 - 8646879 3507 - 24472255 3508 - 36438778 3509 - 30657443 3510 usage_in_usermode: 50000000 3511 total_usage: 100215355 3512 usage_in_kernelmode: 30000000 3513 system_cpu_usage: 739306590000000 3514 online_cpus: 4 3515 throttling_data: 3516 periods: 0 3517 throttled_periods: 0 3518 throttled_time: 0 3519 precpu_stats: 3520 cpu_usage: 3521 percpu_usage: 3522 - 8646879 3523 - 24350896 3524 - 36438778 3525 - 30657443 3526 usage_in_usermode: 50000000 3527 total_usage: 100093996 3528 usage_in_kernelmode: 30000000 3529 system_cpu_usage: 9492140000000 3530 online_cpus: 4 3531 throttling_data: 3532 periods: 0 3533 throttled_periods: 0 3534 throttled_time: 0 3535 404: 3536 description: "no such container" 3537 schema: 3538 $ref: "#/definitions/ErrorResponse" 3539 examples: 3540 application/json: 3541 message: "No such container: c2ada9df5af8" 3542 500: 3543 description: "server error" 3544 schema: 3545 $ref: "#/definitions/ErrorResponse" 3546 parameters: 3547 - name: "id" 3548 in: "path" 3549 required: true 3550 description: "ID or name of the container" 3551 type: "string" 3552 - name: "stream" 3553 in: "query" 3554 description: "Stream the output. If false, the stats will be output once and then it will disconnect." 3555 type: "boolean" 3556 default: true 3557 tags: ["Container"] 3558 /containers/{id}/resize: 3559 post: 3560 summary: "Resize a container TTY" 3561 description: "Resize the TTY for a container. You must restart the container for the resize to take effect." 3562 operationId: "ContainerResize" 3563 consumes: 3564 - "application/octet-stream" 3565 produces: 3566 - "text/plain" 3567 responses: 3568 200: 3569 description: "no error" 3570 404: 3571 description: "no such container" 3572 schema: 3573 $ref: "#/definitions/ErrorResponse" 3574 examples: 3575 application/json: 3576 message: "No such container: c2ada9df5af8" 3577 500: 3578 description: "cannot resize container" 3579 schema: 3580 $ref: "#/definitions/ErrorResponse" 3581 parameters: 3582 - name: "id" 3583 in: "path" 3584 required: true 3585 description: "ID or name of the container" 3586 type: "string" 3587 - name: "h" 3588 in: "query" 3589 description: "Height of the tty session in characters" 3590 type: "integer" 3591 - name: "w" 3592 in: "query" 3593 description: "Width of the tty session in characters" 3594 type: "integer" 3595 tags: ["Container"] 3596 /containers/{id}/start: 3597 post: 3598 summary: "Start a container" 3599 operationId: "ContainerStart" 3600 responses: 3601 204: 3602 description: "no error" 3603 304: 3604 description: "container already started" 3605 schema: 3606 $ref: "#/definitions/ErrorResponse" 3607 404: 3608 description: "no such container" 3609 schema: 3610 $ref: "#/definitions/ErrorResponse" 3611 examples: 3612 application/json: 3613 message: "No such container: c2ada9df5af8" 3614 500: 3615 description: "server error" 3616 schema: 3617 $ref: "#/definitions/ErrorResponse" 3618 parameters: 3619 - name: "id" 3620 in: "path" 3621 required: true 3622 description: "ID or name of the container" 3623 type: "string" 3624 - name: "detachKeys" 3625 in: "query" 3626 description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`." 3627 type: "string" 3628 tags: ["Container"] 3629 /containers/{id}/stop: 3630 post: 3631 summary: "Stop a container" 3632 operationId: "ContainerStop" 3633 responses: 3634 204: 3635 description: "no error" 3636 304: 3637 description: "container already stopped" 3638 schema: 3639 $ref: "#/definitions/ErrorResponse" 3640 404: 3641 description: "no such container" 3642 schema: 3643 $ref: "#/definitions/ErrorResponse" 3644 examples: 3645 application/json: 3646 message: "No such container: c2ada9df5af8" 3647 500: 3648 description: "server error" 3649 schema: 3650 $ref: "#/definitions/ErrorResponse" 3651 parameters: 3652 - name: "id" 3653 in: "path" 3654 required: true 3655 description: "ID or name of the container" 3656 type: "string" 3657 - name: "t" 3658 in: "query" 3659 description: "Number of seconds to wait before killing the container" 3660 type: "integer" 3661 tags: ["Container"] 3662 /containers/{id}/restart: 3663 post: 3664 summary: "Restart a container" 3665 operationId: "ContainerRestart" 3666 responses: 3667 204: 3668 description: "no error" 3669 404: 3670 description: "no such container" 3671 schema: 3672 $ref: "#/definitions/ErrorResponse" 3673 examples: 3674 application/json: 3675 message: "No such container: c2ada9df5af8" 3676 500: 3677 description: "server error" 3678 schema: 3679 $ref: "#/definitions/ErrorResponse" 3680 parameters: 3681 - name: "id" 3682 in: "path" 3683 required: true 3684 description: "ID or name of the container" 3685 type: "string" 3686 - name: "t" 3687 in: "query" 3688 description: "Number of seconds to wait before killing the container" 3689 type: "integer" 3690 tags: ["Container"] 3691 /containers/{id}/kill: 3692 post: 3693 summary: "Kill a container" 3694 description: "Send a POSIX signal to a container, defaulting to killing to the container." 3695 operationId: "ContainerKill" 3696 responses: 3697 204: 3698 description: "no error" 3699 404: 3700 description: "no such container" 3701 schema: 3702 $ref: "#/definitions/ErrorResponse" 3703 examples: 3704 application/json: 3705 message: "No such container: c2ada9df5af8" 3706 500: 3707 description: "server error" 3708 schema: 3709 $ref: "#/definitions/ErrorResponse" 3710 parameters: 3711 - name: "id" 3712 in: "path" 3713 required: true 3714 description: "ID or name of the container" 3715 type: "string" 3716 - name: "signal" 3717 in: "query" 3718 description: "Signal to send to the container as an integer or string (e.g. `SIGINT`)" 3719 type: "string" 3720 default: "SIGKILL" 3721 tags: ["Container"] 3722 /containers/{id}/update: 3723 post: 3724 summary: "Update a container" 3725 description: "Change various configuration options of a container without having to recreate it." 3726 operationId: "ContainerUpdate" 3727 consumes: ["application/json"] 3728 produces: ["application/json"] 3729 responses: 3730 200: 3731 description: "The container has been updated." 3732 schema: 3733 type: "object" 3734 properties: 3735 Warnings: 3736 type: "array" 3737 items: 3738 type: "string" 3739 404: 3740 description: "no such container" 3741 schema: 3742 $ref: "#/definitions/ErrorResponse" 3743 examples: 3744 application/json: 3745 message: "No such container: c2ada9df5af8" 3746 500: 3747 description: "server error" 3748 schema: 3749 $ref: "#/definitions/ErrorResponse" 3750 parameters: 3751 - name: "id" 3752 in: "path" 3753 required: true 3754 description: "ID or name of the container" 3755 type: "string" 3756 - name: "update" 3757 in: "body" 3758 required: true 3759 schema: 3760 allOf: 3761 - $ref: "#/definitions/Resources" 3762 - type: "object" 3763 properties: 3764 RestartPolicy: 3765 $ref: "#/definitions/RestartPolicy" 3766 example: 3767 BlkioWeight: 300 3768 CpuShares: 512 3769 CpuPeriod: 100000 3770 CpuQuota: 50000 3771 CpuRealtimePeriod: 1000000 3772 CpuRealtimeRuntime: 10000 3773 CpusetCpus: "0,1" 3774 CpusetMems: "0" 3775 Memory: 314572800 3776 MemorySwap: 514288000 3777 MemoryReservation: 209715200 3778 KernelMemory: 52428800 3779 RestartPolicy: 3780 MaximumRetryCount: 4 3781 Name: "on-failure" 3782 tags: ["Container"] 3783 /containers/{id}/rename: 3784 post: 3785 summary: "Rename a container" 3786 operationId: "ContainerRename" 3787 responses: 3788 204: 3789 description: "no error" 3790 404: 3791 description: "no such container" 3792 schema: 3793 $ref: "#/definitions/ErrorResponse" 3794 examples: 3795 application/json: 3796 message: "No such container: c2ada9df5af8" 3797 409: 3798 description: "name already in use" 3799 schema: 3800 $ref: "#/definitions/ErrorResponse" 3801 500: 3802 description: "server error" 3803 schema: 3804 $ref: "#/definitions/ErrorResponse" 3805 parameters: 3806 - name: "id" 3807 in: "path" 3808 required: true 3809 description: "ID or name of the container" 3810 type: "string" 3811 - name: "name" 3812 in: "query" 3813 required: true 3814 description: "New name for the container" 3815 type: "string" 3816 tags: ["Container"] 3817 /containers/{id}/pause: 3818 post: 3819 summary: "Pause a container" 3820 description: | 3821 Use the cgroups freezer to suspend all processes in a container. 3822 3823 Traditionally, when suspending a process the `SIGSTOP` signal is used, which is observable by the process being suspended. With the cgroups freezer the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed. 3824 operationId: "ContainerPause" 3825 responses: 3826 204: 3827 description: "no error" 3828 404: 3829 description: "no such container" 3830 schema: 3831 $ref: "#/definitions/ErrorResponse" 3832 examples: 3833 application/json: 3834 message: "No such container: c2ada9df5af8" 3835 500: 3836 description: "server error" 3837 schema: 3838 $ref: "#/definitions/ErrorResponse" 3839 parameters: 3840 - name: "id" 3841 in: "path" 3842 required: true 3843 description: "ID or name of the container" 3844 type: "string" 3845 tags: ["Container"] 3846 /containers/{id}/unpause: 3847 post: 3848 summary: "Unpause a container" 3849 description: "Resume a container which has been paused." 3850 operationId: "ContainerUnpause" 3851 responses: 3852 204: 3853 description: "no error" 3854 404: 3855 description: "no such container" 3856 schema: 3857 $ref: "#/definitions/ErrorResponse" 3858 examples: 3859 application/json: 3860 message: "No such container: c2ada9df5af8" 3861 500: 3862 description: "server error" 3863 schema: 3864 $ref: "#/definitions/ErrorResponse" 3865 parameters: 3866 - name: "id" 3867 in: "path" 3868 required: true 3869 description: "ID or name of the container" 3870 type: "string" 3871 tags: ["Container"] 3872 /containers/{id}/attach: 3873 post: 3874 summary: "Attach to a container" 3875 description: | 3876 Attach to a container to read its output or send it input. You can attach to the same container multiple times and you can reattach to containers that have been detached. 3877 3878 Either the `stream` or `logs` parameter must be `true` for this endpoint to do anything. 3879 3880 See [the documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) for more details. 3881 3882 ### Hijacking 3883 3884 This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, and `stderr` on the same socket. 3885 3886 This is the response from the daemon for an attach request: 3887 3888 ``` 3889 HTTP/1.1 200 OK 3890 Content-Type: application/vnd.docker.raw-stream 3891 3892 [STREAM] 3893 ``` 3894 3895 After the headers and two new lines, the TCP connection can now be used for raw, bidirectional communication between the client and server. 3896 3897 To hint potential proxies about connection hijacking, the Docker client can also optionally send connection upgrade headers. 3898 3899 For example, the client sends this request to upgrade the connection: 3900 3901 ``` 3902 POST /containers/16253994b7c4/attach?stream=1&stdout=1 HTTP/1.1 3903 Upgrade: tcp 3904 Connection: Upgrade 3905 ``` 3906 3907 The Docker daemon will respond with a `101 UPGRADED` response, and will similarly follow with the raw stream: 3908 3909 ``` 3910 HTTP/1.1 101 UPGRADED 3911 Content-Type: application/vnd.docker.raw-stream 3912 Connection: Upgrade 3913 Upgrade: tcp 3914 3915 [STREAM] 3916 ``` 3917 3918 ### Stream format 3919 3920 When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), the stream over the hijacked connected is multiplexed to separate out `stdout` and `stderr`. The stream consists of a series of frames, each containing a header and a payload. 3921 3922 The header contains the information which the stream writes (`stdout` or `stderr`). It also contains the size of the associated frame encoded in the last four bytes (`uint32`). 3923 3924 It is encoded on the first eight bytes like this: 3925 3926 ```go 3927 header := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4} 3928 ``` 3929 3930 `STREAM_TYPE` can be: 3931 3932 - 0: `stdin` (is written on `stdout`) 3933 - 1: `stdout` 3934 - 2: `stderr` 3935 3936 `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size encoded as big endian. 3937 3938 Following the header is the payload, which is the specified number of bytes of `STREAM_TYPE`. 3939 3940 The simplest way to implement this protocol is the following: 3941 3942 1. Read 8 bytes. 3943 2. Choose `stdout` or `stderr` depending on the first byte. 3944 3. Extract the frame size from the last four bytes. 3945 4. Read the extracted size and output it on the correct output. 3946 5. Goto 1. 3947 3948 ### Stream format when using a TTY 3949 3950 When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), the stream is not multiplexed. The data exchanged over the hijacked connection is simply the raw data from the process PTY and client's `stdin`. 3951 3952 operationId: "ContainerAttach" 3953 produces: 3954 - "application/vnd.docker.raw-stream" 3955 responses: 3956 101: 3957 description: "no error, hints proxy about hijacking" 3958 200: 3959 description: "no error, no upgrade header found" 3960 400: 3961 description: "bad parameter" 3962 schema: 3963 $ref: "#/definitions/ErrorResponse" 3964 404: 3965 description: "no such container" 3966 schema: 3967 $ref: "#/definitions/ErrorResponse" 3968 examples: 3969 application/json: 3970 message: "No such container: c2ada9df5af8" 3971 500: 3972 description: "server error" 3973 schema: 3974 $ref: "#/definitions/ErrorResponse" 3975 parameters: 3976 - name: "id" 3977 in: "path" 3978 required: true 3979 description: "ID or name of the container" 3980 type: "string" 3981 - name: "detachKeys" 3982 in: "query" 3983 description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`." 3984 type: "string" 3985 - name: "logs" 3986 in: "query" 3987 description: | 3988 Replay previous logs from the container. 3989 3990 This is useful for attaching to a container that has started and you want to output everything since the container started. 3991 3992 If `stream` is also enabled, once all the previous output has been returned, it will seamlessly transition into streaming current output. 3993 type: "boolean" 3994 default: false 3995 - name: "stream" 3996 in: "query" 3997 description: "Stream attached streams from the the time the request was made onwards" 3998 type: "boolean" 3999 default: false 4000 - name: "stdin" 4001 in: "query" 4002 description: "Attach to `stdin`" 4003 type: "boolean" 4004 default: false 4005 - name: "stdout" 4006 in: "query" 4007 description: "Attach to `stdout`" 4008 type: "boolean" 4009 default: false 4010 - name: "stderr" 4011 in: "query" 4012 description: "Attach to `stderr`" 4013 type: "boolean" 4014 default: false 4015 tags: ["Container"] 4016 /containers/{id}/attach/ws: 4017 get: 4018 summary: "Attach to a container via a websocket" 4019 operationId: "ContainerAttachWebsocket" 4020 responses: 4021 101: 4022 description: "no error, hints proxy about hijacking" 4023 200: 4024 description: "no error, no upgrade header found" 4025 400: 4026 description: "bad parameter" 4027 schema: 4028 $ref: "#/definitions/ErrorResponse" 4029 404: 4030 description: "no such container" 4031 schema: 4032 $ref: "#/definitions/ErrorResponse" 4033 examples: 4034 application/json: 4035 message: "No such container: c2ada9df5af8" 4036 500: 4037 description: "server error" 4038 schema: 4039 $ref: "#/definitions/ErrorResponse" 4040 parameters: 4041 - name: "id" 4042 in: "path" 4043 required: true 4044 description: "ID or name of the container" 4045 type: "string" 4046 - name: "detachKeys" 4047 in: "query" 4048 description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,`, or `_`." 4049 type: "string" 4050 - name: "logs" 4051 in: "query" 4052 description: "Return logs" 4053 type: "boolean" 4054 default: false 4055 - name: "stream" 4056 in: "query" 4057 description: "Return stream" 4058 type: "boolean" 4059 default: false 4060 tags: ["Container"] 4061 /containers/{id}/wait: 4062 post: 4063 summary: "Wait for a container" 4064 description: "Block until a container stops, then returns the exit code." 4065 operationId: "ContainerWait" 4066 produces: ["application/json"] 4067 responses: 4068 200: 4069 description: "The container has exit." 4070 schema: 4071 type: "object" 4072 required: [StatusCode] 4073 properties: 4074 StatusCode: 4075 description: "Exit code of the container" 4076 type: "integer" 4077 x-nullable: false 4078 404: 4079 description: "no such container" 4080 schema: 4081 $ref: "#/definitions/ErrorResponse" 4082 examples: 4083 application/json: 4084 message: "No such container: c2ada9df5af8" 4085 500: 4086 description: "server error" 4087 schema: 4088 $ref: "#/definitions/ErrorResponse" 4089 parameters: 4090 - name: "id" 4091 in: "path" 4092 required: true 4093 description: "ID or name of the container" 4094 type: "string" 4095 tags: ["Container"] 4096 /containers/{id}: 4097 delete: 4098 summary: "Remove a container" 4099 operationId: "ContainerDelete" 4100 responses: 4101 204: 4102 description: "no error" 4103 400: 4104 description: "bad parameter" 4105 schema: 4106 $ref: "#/definitions/ErrorResponse" 4107 404: 4108 description: "no such container" 4109 schema: 4110 $ref: "#/definitions/ErrorResponse" 4111 examples: 4112 application/json: 4113 message: "No such container: c2ada9df5af8" 4114 409: 4115 description: "conflict" 4116 schema: 4117 $ref: "#/definitions/ErrorResponse" 4118 examples: 4119 application/json: 4120 message: "You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or use -f" 4121 500: 4122 description: "server error" 4123 schema: 4124 $ref: "#/definitions/ErrorResponse" 4125 parameters: 4126 - name: "id" 4127 in: "path" 4128 required: true 4129 description: "ID or name of the container" 4130 type: "string" 4131 - name: "v" 4132 in: "query" 4133 description: "Remove anonymous volumes associated with the container." 4134 type: "boolean" 4135 default: false 4136 - name: "force" 4137 in: "query" 4138 description: "If the container is running, kill it before removing it." 4139 type: "boolean" 4140 default: false 4141 - name: "link" 4142 in: "query" 4143 description: "Remove the specified link associated with the container." 4144 type: "boolean" 4145 default: false 4146 tags: ["Container"] 4147 /containers/{id}/archive: 4148 head: 4149 summary: "Get information about files in a container" 4150 description: "A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path." 4151 operationId: "ContainerArchiveHead" 4152 responses: 4153 200: 4154 description: "no error" 4155 headers: 4156 X-Docker-Container-Path-Stat: 4157 type: "string" 4158 description: "TODO" 4159 400: 4160 description: "Bad parameter" 4161 schema: 4162 $ref: "#/definitions/ErrorResponse" 4163 404: 4164 description: "Container or path does not exist" 4165 schema: 4166 $ref: "#/definitions/ErrorResponse" 4167 examples: 4168 application/json: 4169 message: "No such container: c2ada9df5af8" 4170 500: 4171 description: "Server error" 4172 schema: 4173 $ref: "#/definitions/ErrorResponse" 4174 parameters: 4175 - name: "id" 4176 in: "path" 4177 required: true 4178 description: "ID or name of the container" 4179 type: "string" 4180 - name: "path" 4181 in: "query" 4182 required: true 4183 description: "Resource in the container’s filesystem to archive." 4184 type: "string" 4185 tags: ["Container"] 4186 get: 4187 summary: "Get an archive of a filesystem resource in a container" 4188 description: "Get an tar archive of a resource in the filesystem of container id." 4189 operationId: "ContainerGetArchive" 4190 produces: 4191 - "application/x-tar" 4192 responses: 4193 200: 4194 description: "no error" 4195 400: 4196 description: "Bad parameter" 4197 schema: 4198 $ref: "#/definitions/ErrorResponse" 4199 404: 4200 description: "Container or path does not exist" 4201 schema: 4202 $ref: "#/definitions/ErrorResponse" 4203 examples: 4204 application/json: 4205 message: "No such container: c2ada9df5af8" 4206 500: 4207 description: "server error" 4208 schema: 4209 $ref: "#/definitions/ErrorResponse" 4210 parameters: 4211 - name: "id" 4212 in: "path" 4213 required: true 4214 description: "ID or name of the container" 4215 type: "string" 4216 - name: "path" 4217 in: "query" 4218 required: true 4219 description: "Resource in the container’s filesystem to archive." 4220 type: "string" 4221 tags: ["Container"] 4222 put: 4223 summary: "Extract an archive of files or folders to a directory in a container" 4224 description: | 4225 Upload a tar archive to be extracted to a path in the filesystem of container id. 4226 `path` parameter is asserted to be a directory. If it exists as a file, 400 error 4227 will be returned with message "not a directory". 4228 operationId: "ContainerPutArchive" 4229 consumes: 4230 - "application/x-tar" 4231 - "application/octet-stream" 4232 responses: 4233 200: 4234 description: "The content was extracted successfully" 4235 400: 4236 description: "Bad parameter" 4237 schema: 4238 $ref: "#/definitions/ErrorResponse" 4239 examples: 4240 application/json: 4241 message: "not a directory" 4242 403: 4243 description: "Permission denied, the volume or container rootfs is marked as read-only." 4244 schema: 4245 $ref: "#/definitions/ErrorResponse" 4246 404: 4247 description: "No such container or path does not exist inside the container" 4248 schema: 4249 $ref: "#/definitions/ErrorResponse" 4250 examples: 4251 application/json: 4252 message: "No such container: c2ada9df5af8" 4253 500: 4254 description: "Server error" 4255 schema: 4256 $ref: "#/definitions/ErrorResponse" 4257 parameters: 4258 - name: "id" 4259 in: "path" 4260 required: true 4261 description: "ID or name of the container" 4262 type: "string" 4263 - name: "path" 4264 in: "query" 4265 required: true 4266 description: "Path to a directory in the container to extract the archive’s contents into. " 4267 type: "string" 4268 - name: "noOverwriteDirNonDir" 4269 in: "query" 4270 description: "If “1”, “true”, or “True” then it will be an error if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa." 4271 type: "string" 4272 - name: "inputStream" 4273 in: "body" 4274 required: true 4275 description: "The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz." 4276 schema: 4277 type: "string" 4278 tags: ["Container"] 4279 /containers/prune: 4280 post: 4281 summary: "Delete stopped containers" 4282 produces: 4283 - "application/json" 4284 operationId: "ContainerPrune" 4285 responses: 4286 200: 4287 description: "No error" 4288 schema: 4289 type: "object" 4290 properties: 4291 ContainersDeleted: 4292 description: "Container IDs that were deleted" 4293 type: "array" 4294 items: 4295 type: "string" 4296 SpaceReclaimed: 4297 description: "Disk space reclaimed in bytes" 4298 type: "integer" 4299 format: "int64" 4300 500: 4301 description: "Server error" 4302 schema: 4303 $ref: "#/definitions/ErrorResponse" 4304 tags: ["Container"] 4305 /images/json: 4306 get: 4307 summary: "List Images" 4308 description: "Returns a list of images on the server. Note that it uses a different, smaller representation of an image than inspecting a single image." 4309 operationId: "ImageList" 4310 produces: 4311 - "application/json" 4312 responses: 4313 200: 4314 description: "Summary image data for the images matching the query" 4315 schema: 4316 type: "array" 4317 items: 4318 $ref: "#/definitions/ImageSummary" 4319 examples: 4320 application/json: 4321 - Id: "sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8" 4322 ParentId: "" 4323 RepoTags: 4324 - "ubuntu:12.04" 4325 - "ubuntu:precise" 4326 RepoDigests: 4327 - "ubuntu@sha256:992069aee4016783df6345315302fa59681aae51a8eeb2f889dea59290f21787" 4328 Created: 1474925151 4329 Size: 103579269 4330 VirtualSize: 103579269 4331 SharedSize: 0 4332 Labels: {} 4333 Containers: 2 4334 - Id: "sha256:3e314f95dcace0f5e4fd37b10862fe8398e3c60ed36600bc0ca5fda78b087175" 4335 ParentId: "" 4336 RepoTags: 4337 - "ubuntu:12.10" 4338 - "ubuntu:quantal" 4339 RepoDigests: 4340 - "ubuntu@sha256:002fba3e3255af10be97ea26e476692a7ebed0bb074a9ab960b2e7a1526b15d7" 4341 - "ubuntu@sha256:68ea0200f0b90df725d99d823905b04cf844f6039ef60c60bf3e019915017bd3" 4342 Created: 1403128455 4343 Size: 172064416 4344 VirtualSize: 172064416 4345 SharedSize: 0 4346 Labels: {} 4347 Containers: 5 4348 500: 4349 description: "server error" 4350 schema: 4351 $ref: "#/definitions/ErrorResponse" 4352 parameters: 4353 - name: "all" 4354 in: "query" 4355 description: "Show all images. Only images from a final layer (no children) are shown by default." 4356 type: "boolean" 4357 default: false 4358 - name: "filters" 4359 in: "query" 4360 description: | 4361 A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters: 4362 4363 - `before`=(`<image-name>[:<tag>]`, `<image id>` or `<image@digest>`) 4364 - `dangling=true` 4365 - `label=key` or `label="key=value"` of an image label 4366 - `reference`=(`<image-name>[:<tag>]`) 4367 - `since`=(`<image-name>[:<tag>]`, `<image id>` or `<image@digest>`) 4368 type: "string" 4369 - name: "digests" 4370 in: "query" 4371 description: "Show digest information as a `RepoDigests` field on each image." 4372 type: "boolean" 4373 default: false 4374 tags: ["Image"] 4375 /build: 4376 post: 4377 summary: "Build an image" 4378 description: | 4379 Build an image from a tar archive with a `Dockerfile` in it. 4380 4381 The `Dockerfile` specifies how the image is built from the tar archive. It is typically in the archive's root, but can be at a different path or have a different name by specifying the `dockerfile` parameter. [See the `Dockerfile` reference for more information](https://docs.docker.com/engine/reference/builder/). 4382 4383 The Docker daemon performs a preliminary validation of the `Dockerfile` before starting the build, and returns an error if the syntax is incorrect. After that, each instruction is run one-by-one until the ID of the new image is output. 4384 4385 The build is canceled if the client drops the connection by quitting or being killed. 4386 operationId: "ImageBuild" 4387 consumes: 4388 - "application/octet-stream" 4389 produces: 4390 - "application/json" 4391 parameters: 4392 - name: "inputStream" 4393 in: "body" 4394 description: "A tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz." 4395 schema: 4396 type: "string" 4397 format: "binary" 4398 - name: "dockerfile" 4399 in: "query" 4400 description: "Path within the build context to the `Dockerfile`. This is ignored if `remote` is specified and points to an external `Dockerfile`." 4401 type: "string" 4402 default: "Dockerfile" 4403 - name: "t" 4404 in: "query" 4405 description: "A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag the default `latest` value is assumed. You can provide several `t` parameters." 4406 type: "string" 4407 - name: "remote" 4408 in: "query" 4409 description: "A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called `Dockerfile` and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the `dockerfile` parameter is also specified, there must be a file with the corresponding path inside the tarball." 4410 type: "string" 4411 - name: "q" 4412 in: "query" 4413 description: "Suppress verbose build output." 4414 type: "boolean" 4415 default: false 4416 - name: "nocache" 4417 in: "query" 4418 description: "Do not use the cache when building the image." 4419 type: "boolean" 4420 default: false 4421 - name: "cachefrom" 4422 in: "query" 4423 description: "JSON array of images used for build cache resolution." 4424 type: "string" 4425 - name: "pull" 4426 in: "query" 4427 description: "Attempt to pull the image even if an older image exists locally." 4428 type: "string" 4429 - name: "rm" 4430 in: "query" 4431 description: "Remove intermediate containers after a successful build." 4432 type: "boolean" 4433 default: true 4434 - name: "forcerm" 4435 in: "query" 4436 description: "Always remove intermediate containers, even upon failure." 4437 type: "boolean" 4438 default: false 4439 - name: "memory" 4440 in: "query" 4441 description: "Set memory limit for build." 4442 type: "integer" 4443 - name: "memswap" 4444 in: "query" 4445 description: "Total memory (memory + swap). Set as `-1` to disable swap." 4446 type: "integer" 4447 - name: "cpushares" 4448 in: "query" 4449 description: "CPU shares (relative weight)." 4450 type: "integer" 4451 - name: "cpusetcpus" 4452 in: "query" 4453 description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)." 4454 type: "string" 4455 - name: "cpuperiod" 4456 in: "query" 4457 description: "The length of a CPU period in microseconds." 4458 type: "integer" 4459 - name: "cpuquota" 4460 in: "query" 4461 description: "Microseconds of CPU time that the container can get in a CPU period." 4462 type: "integer" 4463 - name: "buildargs" 4464 in: "query" 4465 description: "JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker uses the buildargs as the environment context for commands run via the `Dockerfile` RUN instruction, or for variable expansion in other `Dockerfile` instructions. This is not meant for passing secret values. [Read more about the buildargs instruction.](https://docs.docker.com/engine/reference/builder/#arg)" 4466 type: "integer" 4467 - name: "shmsize" 4468 in: "query" 4469 description: "Size of `/dev/shm` in bytes. The size must be greater than 0. If omitted the system uses 64MB." 4470 type: "integer" 4471 - name: "squash" 4472 in: "query" 4473 description: "Squash the resulting images layers into a single layer. *(Experimental release only.)*" 4474 type: "boolean" 4475 - name: "labels" 4476 in: "query" 4477 description: "Arbitrary key/value labels to set on the image, as a JSON map of string pairs." 4478 type: "string" 4479 - name: "networkmode" 4480 in: "query" 4481 description: "Sets the networking mode for the run commands during 4482 build. Supported standard values are: `bridge`, `host`, `none`, and 4483 `container:<name|id>`. Any other value is taken as a custom network's 4484 name to which this container should connect to." 4485 type: "string" 4486 - name: "Content-type" 4487 in: "header" 4488 type: "string" 4489 enum: 4490 - "application/tar" 4491 default: "application/tar" 4492 - name: "X-Registry-Config" 4493 in: "header" 4494 description: | 4495 This is a base64-encoded JSON object with auth configurations for multiple registries that a build may refer to. 4496 4497 The key is a registry URL, and the value is an auth configuration object, [as described in the authentication section](#section/Authentication). For example: 4498 4499 ``` 4500 { 4501 "docker.example.com": { 4502 "username": "janedoe", 4503 "password": "hunter2" 4504 }, 4505 "https://index.docker.io/v1/": { 4506 "username": "mobydock", 4507 "password": "conta1n3rize14" 4508 } 4509 } 4510 ``` 4511 4512 Only the registry domain name (and port if not the default 443) are required. However, for legacy reasons, the Docker Hub registry must be specified with both a `https://` prefix and a `/v1/` suffix even though Docker will prefer to use the v2 registry API. 4513 type: "string" 4514 responses: 4515 200: 4516 description: "no error" 4517 400: 4518 description: "Bad parameter" 4519 schema: 4520 $ref: "#/definitions/ErrorResponse" 4521 500: 4522 description: "server error" 4523 schema: 4524 $ref: "#/definitions/ErrorResponse" 4525 tags: ["Image"] 4526 /images/create: 4527 post: 4528 summary: "Create an image" 4529 description: "Create an image by either pulling it from a registry or importing it." 4530 operationId: "ImageCreate" 4531 consumes: 4532 - "text/plain" 4533 - "application/octet-stream" 4534 produces: 4535 - "application/json" 4536 responses: 4537 200: 4538 description: "no error" 4539 404: 4540 description: "repository does not exist or no read access" 4541 schema: 4542 $ref: "#/definitions/ErrorResponse" 4543 500: 4544 description: "server error" 4545 schema: 4546 $ref: "#/definitions/ErrorResponse" 4547 parameters: 4548 - name: "fromImage" 4549 in: "query" 4550 description: "Name of the image to pull. The name may include a tag or digest. This parameter may only be used when pulling an image. The pull is cancelled if the HTTP connection is closed." 4551 type: "string" 4552 - name: "fromSrc" 4553 in: "query" 4554 description: "Source to import. The value may be a URL from which the image can be retrieved or `-` to read the image from the request body. This parameter may only be used when importing an image." 4555 type: "string" 4556 - name: "repo" 4557 in: "query" 4558 description: "Repository name given to an image when it is imported. The repo may include a tag. This parameter may only be used when importing an image." 4559 type: "string" 4560 - name: "tag" 4561 in: "query" 4562 description: "Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled." 4563 type: "string" 4564 - name: "inputImage" 4565 in: "body" 4566 description: "Image content if the value `-` has been specified in fromSrc query parameter" 4567 schema: 4568 type: "string" 4569 required: false 4570 - name: "X-Registry-Auth" 4571 in: "header" 4572 description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)" 4573 type: "string" 4574 tags: ["Image"] 4575 /images/{name}/json: 4576 get: 4577 summary: "Inspect an image" 4578 description: "Return low-level information about an image." 4579 operationId: "ImageInspect" 4580 produces: 4581 - "application/json" 4582 responses: 4583 200: 4584 description: "No error" 4585 schema: 4586 $ref: "#/definitions/Image" 4587 examples: 4588 application/json: 4589 Id: "sha256:85f05633ddc1c50679be2b16a0479ab6f7637f8884e0cfe0f4d20e1ebb3d6e7c" 4590 Container: "cb91e48a60d01f1e27028b4fc6819f4f290b3cf12496c8176ec714d0d390984a" 4591 Comment: "" 4592 Os: "linux" 4593 Architecture: "amd64" 4594 Parent: "sha256:91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c" 4595 ContainerConfig: 4596 Tty: false 4597 Hostname: "e611e15f9c9d" 4598 Domainname: "" 4599 AttachStdout: false 4600 PublishService: "" 4601 AttachStdin: false 4602 OpenStdin: false 4603 StdinOnce: false 4604 NetworkDisabled: false 4605 OnBuild: [] 4606 Image: "91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c" 4607 User: "" 4608 WorkingDir: "" 4609 MacAddress: "" 4610 AttachStderr: false 4611 Labels: 4612 com.example.license: "GPL" 4613 com.example.version: "1.0" 4614 com.example.vendor: "Acme" 4615 Env: 4616 - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 4617 Cmd: 4618 - "/bin/sh" 4619 - "-c" 4620 - "#(nop) LABEL com.example.vendor=Acme com.example.license=GPL com.example.version=1.0" 4621 DockerVersion: "1.9.0-dev" 4622 VirtualSize: 188359297 4623 Size: 0 4624 Author: "" 4625 Created: "2015-09-10T08:30:53.26995814Z" 4626 GraphDriver: 4627 Name: "aufs" 4628 RepoDigests: 4629 - "localhost:5000/test/busybox/example@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf" 4630 RepoTags: 4631 - "example:1.0" 4632 - "example:latest" 4633 - "example:stable" 4634 Config: 4635 Image: "91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c" 4636 NetworkDisabled: false 4637 OnBuild: [] 4638 StdinOnce: false 4639 PublishService: "" 4640 AttachStdin: false 4641 OpenStdin: false 4642 Domainname: "" 4643 AttachStdout: false 4644 Tty: false 4645 Hostname: "e611e15f9c9d" 4646 Cmd: 4647 - "/bin/bash" 4648 Env: 4649 - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 4650 Labels: 4651 com.example.vendor: "Acme" 4652 com.example.version: "1.0" 4653 com.example.license: "GPL" 4654 MacAddress: "" 4655 AttachStderr: false 4656 WorkingDir: "" 4657 User: "" 4658 RootFS: 4659 Type: "layers" 4660 Layers: 4661 - "sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6" 4662 - "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef" 4663 404: 4664 description: "No such image" 4665 schema: 4666 $ref: "#/definitions/ErrorResponse" 4667 examples: 4668 application/json: 4669 message: "No such image: someimage (tag: latest)" 4670 500: 4671 description: "Server error" 4672 schema: 4673 $ref: "#/definitions/ErrorResponse" 4674 parameters: 4675 - name: "name" 4676 in: "path" 4677 description: "Image name or id" 4678 type: "string" 4679 required: true 4680 tags: ["Image"] 4681 /images/{name}/history: 4682 get: 4683 summary: "Get the history of an image" 4684 description: "Return parent layers of an image." 4685 operationId: "ImageHistory" 4686 produces: 4687 - "application/json" 4688 responses: 4689 200: 4690 description: "No error" 4691 schema: 4692 type: "array" 4693 items: 4694 type: "object" 4695 properties: 4696 Id: 4697 type: "string" 4698 Created: 4699 type: "integer" 4700 format: "int64" 4701 CreatedBy: 4702 type: "string" 4703 Tags: 4704 type: "array" 4705 items: 4706 type: "string" 4707 Size: 4708 type: "integer" 4709 format: "int64" 4710 Comment: 4711 type: "string" 4712 examples: 4713 application/json: 4714 - Id: "3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710" 4715 Created: 1398108230 4716 CreatedBy: "/bin/sh -c #(nop) ADD file:eb15dbd63394e063b805a3c32ca7bf0266ef64676d5a6fab4801f2e81e2a5148 in /" 4717 Tags: 4718 - "ubuntu:lucid" 4719 - "ubuntu:10.04" 4720 Size: 182964289 4721 Comment: "" 4722 - Id: "6cfa4d1f33fb861d4d114f43b25abd0ac737509268065cdfd69d544a59c85ab8" 4723 Created: 1398108222 4724 CreatedBy: "/bin/sh -c #(nop) MAINTAINER Tianon Gravi <admwiggin@gmail.com> - mkimage-debootstrap.sh -i iproute,iputils-ping,ubuntu-minimal -t lucid.tar.xz lucid http://archive.ubuntu.com/ubuntu/" 4725 Tags: [] 4726 Size: 0 4727 Comment: "" 4728 - Id: "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158" 4729 Created: 1371157430 4730 CreatedBy: "" 4731 Tags: 4732 - "scratch12:latest" 4733 - "scratch:latest" 4734 Size: 0 4735 Comment: "Imported from -" 4736 404: 4737 description: "No such image" 4738 schema: 4739 $ref: "#/definitions/ErrorResponse" 4740 500: 4741 description: "Server error" 4742 schema: 4743 $ref: "#/definitions/ErrorResponse" 4744 parameters: 4745 - name: "name" 4746 in: "path" 4747 description: "Image name or ID" 4748 type: "string" 4749 required: true 4750 tags: ["Image"] 4751 /images/{name}/push: 4752 post: 4753 summary: "Push an image" 4754 description: | 4755 Push an image to a registry. 4756 4757 If you wish to push an image on to a private registry, that image must already have a tag which references the registry. For example, `registry.example.com/myimage:latest`. 4758 4759 The push is cancelled if the HTTP connection is closed. 4760 operationId: "ImagePush" 4761 consumes: 4762 - "application/octet-stream" 4763 responses: 4764 200: 4765 description: "No error" 4766 404: 4767 description: "No such image" 4768 schema: 4769 $ref: "#/definitions/ErrorResponse" 4770 500: 4771 description: "Server error" 4772 schema: 4773 $ref: "#/definitions/ErrorResponse" 4774 parameters: 4775 - name: "name" 4776 in: "path" 4777 description: "Image name or ID." 4778 type: "string" 4779 required: true 4780 - name: "tag" 4781 in: "query" 4782 description: "The tag to associate with the image on the registry." 4783 type: "string" 4784 - name: "X-Registry-Auth" 4785 in: "header" 4786 description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)" 4787 type: "string" 4788 required: true 4789 tags: ["Image"] 4790 /images/{name}/tag: 4791 post: 4792 summary: "Tag an image" 4793 description: "Tag an image so that it becomes part of a repository." 4794 operationId: "ImageTag" 4795 responses: 4796 201: 4797 description: "No error" 4798 400: 4799 description: "Bad parameter" 4800 schema: 4801 $ref: "#/definitions/ErrorResponse" 4802 404: 4803 description: "No such image" 4804 schema: 4805 $ref: "#/definitions/ErrorResponse" 4806 409: 4807 description: "Conflict" 4808 schema: 4809 $ref: "#/definitions/ErrorResponse" 4810 500: 4811 description: "Server error" 4812 schema: 4813 $ref: "#/definitions/ErrorResponse" 4814 parameters: 4815 - name: "name" 4816 in: "path" 4817 description: "Image name or ID to tag." 4818 type: "string" 4819 required: true 4820 - name: "repo" 4821 in: "query" 4822 description: "The repository to tag in. For example, `someuser/someimage`." 4823 type: "string" 4824 - name: "tag" 4825 in: "query" 4826 description: "The name of the new tag." 4827 type: "string" 4828 tags: ["Image"] 4829 /images/{name}: 4830 delete: 4831 summary: "Remove an image" 4832 description: | 4833 Remove an image, along with any untagged parent images that were referenced by that image. 4834 4835 Images can't be removed if they have descendant images, are being used by a running container or are being used by a build. 4836 operationId: "ImageDelete" 4837 produces: 4838 - "application/json" 4839 responses: 4840 200: 4841 description: "No error" 4842 schema: 4843 type: "array" 4844 items: 4845 $ref: "#/definitions/ImageDeleteResponse" 4846 examples: 4847 application/json: 4848 - Untagged: "3e2f21a89f" 4849 - Deleted: "3e2f21a89f" 4850 - Deleted: "53b4f83ac9" 4851 404: 4852 description: "No such image" 4853 schema: 4854 $ref: "#/definitions/ErrorResponse" 4855 409: 4856 description: "Conflict" 4857 schema: 4858 $ref: "#/definitions/ErrorResponse" 4859 500: 4860 description: "Server error" 4861 schema: 4862 $ref: "#/definitions/ErrorResponse" 4863 parameters: 4864 - name: "name" 4865 in: "path" 4866 description: "Image name or ID" 4867 type: "string" 4868 required: true 4869 - name: "force" 4870 in: "query" 4871 description: "Remove the image even if it is being used by stopped containers or has other tags" 4872 type: "boolean" 4873 default: false 4874 - name: "noprune" 4875 in: "query" 4876 description: "Do not delete untagged parent images" 4877 type: "boolean" 4878 default: false 4879 tags: ["Image"] 4880 /images/search: 4881 get: 4882 summary: "Search images" 4883 description: "Search for an image on Docker Hub." 4884 operationId: "ImageSearch" 4885 produces: 4886 - "application/json" 4887 responses: 4888 200: 4889 description: "No error" 4890 schema: 4891 type: "array" 4892 items: 4893 type: "object" 4894 properties: 4895 description: 4896 type: "string" 4897 is_official: 4898 type: "boolean" 4899 is_automated: 4900 type: "boolean" 4901 name: 4902 type: "string" 4903 star_count: 4904 type: "integer" 4905 examples: 4906 application/json: 4907 - description: "" 4908 is_official: false 4909 is_automated: false 4910 name: "wma55/u1210sshd" 4911 star_count: 0 4912 - description: "" 4913 is_official: false 4914 is_automated: false 4915 name: "jdswinbank/sshd" 4916 star_count: 0 4917 - description: "" 4918 is_official: false 4919 is_automated: false 4920 name: "vgauthier/sshd" 4921 star_count: 0 4922 500: 4923 description: "Server error" 4924 schema: 4925 $ref: "#/definitions/ErrorResponse" 4926 parameters: 4927 - name: "term" 4928 in: "query" 4929 description: "Term to search" 4930 type: "string" 4931 required: true 4932 - name: "limit" 4933 in: "query" 4934 description: "Maximum number of results to return" 4935 type: "integer" 4936 - name: "filters" 4937 in: "query" 4938 description: | 4939 A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters: 4940 4941 - `is-automated=(true|false)` 4942 - `is-official=(true|false)` 4943 - `stars=<number>` Matches images that has at least 'number' stars. 4944 type: "string" 4945 tags: ["Image"] 4946 /images/prune: 4947 post: 4948 summary: "Delete unused images" 4949 produces: 4950 - "application/json" 4951 operationId: "ImagePrune" 4952 parameters: 4953 - name: "filters" 4954 in: "query" 4955 description: | 4956 Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters: 4957 4958 - `dangling=<boolean>` When set to `true` (or `1`), prune only 4959 unused *and* untagged images. When set to `false` 4960 (or `0`), all unused images are pruned. 4961 type: "string" 4962 responses: 4963 200: 4964 description: "No error" 4965 schema: 4966 type: "object" 4967 properties: 4968 ImagesDeleted: 4969 description: "Images that were deleted" 4970 type: "array" 4971 items: 4972 $ref: "#/definitions/ImageDeleteResponse" 4973 SpaceReclaimed: 4974 description: "Disk space reclaimed in bytes" 4975 type: "integer" 4976 format: "int64" 4977 500: 4978 description: "Server error" 4979 schema: 4980 $ref: "#/definitions/ErrorResponse" 4981 tags: ["Image"] 4982 /auth: 4983 post: 4984 summary: "Check auth configuration" 4985 description: "Validate credentials for a registry and, if available, get an identity token for accessing the registry without password." 4986 operationId: "SystemAuth" 4987 consumes: ["application/json"] 4988 produces: ["application/json"] 4989 responses: 4990 200: 4991 description: "An identity token was generated successfully." 4992 schema: 4993 type: "object" 4994 required: [Status] 4995 properties: 4996 Status: 4997 description: "The status of the authentication" 4998 type: "string" 4999 x-nullable: false 5000 IdentityToken: 5001 description: "An opaque token used to authenticate a user after a successful login" 5002 type: "string" 5003 x-nullable: false 5004 examples: 5005 application/json: 5006 Status: "Login Succeeded" 5007 IdentityToken: "9cbaf023786cd7..." 5008 204: 5009 description: "No error" 5010 500: 5011 description: "Server error" 5012 schema: 5013 $ref: "#/definitions/ErrorResponse" 5014 parameters: 5015 - name: "authConfig" 5016 in: "body" 5017 description: "Authentication to check" 5018 schema: 5019 $ref: "#/definitions/AuthConfig" 5020 tags: ["System"] 5021 /info: 5022 get: 5023 summary: "Get system information" 5024 operationId: "SystemInfo" 5025 produces: 5026 - "application/json" 5027 responses: 5028 200: 5029 description: "No error" 5030 schema: 5031 type: "object" 5032 properties: 5033 Architecture: 5034 type: "string" 5035 Containers: 5036 type: "integer" 5037 ContainersRunning: 5038 type: "integer" 5039 ContainersStopped: 5040 type: "integer" 5041 ContainersPaused: 5042 type: "integer" 5043 CpuCfsPeriod: 5044 type: "boolean" 5045 CpuCfsQuota: 5046 type: "boolean" 5047 Debug: 5048 type: "boolean" 5049 DiscoveryBackend: 5050 type: "string" 5051 DockerRootDir: 5052 type: "string" 5053 Driver: 5054 type: "string" 5055 DriverStatus: 5056 type: "array" 5057 items: 5058 type: "array" 5059 items: 5060 type: "string" 5061 SystemStatus: 5062 type: "array" 5063 items: 5064 type: "array" 5065 items: 5066 type: "string" 5067 Plugins: 5068 type: "object" 5069 properties: 5070 Volume: 5071 type: "array" 5072 items: 5073 type: "string" 5074 Network: 5075 type: "array" 5076 items: 5077 type: "string" 5078 ExperimentalBuild: 5079 type: "boolean" 5080 HttpProxy: 5081 type: "string" 5082 HttpsProxy: 5083 type: "string" 5084 ID: 5085 type: "string" 5086 IPv4Forwarding: 5087 type: "boolean" 5088 Images: 5089 type: "integer" 5090 IndexServerAddress: 5091 type: "string" 5092 InitPath: 5093 type: "string" 5094 InitSha1: 5095 type: "string" 5096 KernelVersion: 5097 type: "string" 5098 Labels: 5099 type: "array" 5100 items: 5101 type: "string" 5102 MemTotal: 5103 type: "integer" 5104 MemoryLimit: 5105 type: "boolean" 5106 NCPU: 5107 type: "integer" 5108 NEventsListener: 5109 type: "integer" 5110 NFd: 5111 type: "integer" 5112 NGoroutines: 5113 type: "integer" 5114 Name: 5115 type: "string" 5116 NoProxy: 5117 type: "string" 5118 OomKillDisable: 5119 type: "boolean" 5120 OSType: 5121 type: "string" 5122 OomScoreAdj: 5123 type: "integer" 5124 OperatingSystem: 5125 type: "string" 5126 RegistryConfig: 5127 type: "object" 5128 properties: 5129 IndexConfigs: 5130 type: "object" 5131 additionalProperties: 5132 type: "object" 5133 properties: 5134 Mirrors: 5135 type: "array" 5136 items: 5137 type: "string" 5138 Name: 5139 type: "string" 5140 Official: 5141 type: "boolean" 5142 Secure: 5143 type: "boolean" 5144 InsecureRegistryCIDRs: 5145 type: "array" 5146 items: 5147 type: "string" 5148 SwapLimit: 5149 type: "boolean" 5150 SystemTime: 5151 type: "string" 5152 ServerVersion: 5153 type: "string" 5154 examples: 5155 application/json: 5156 Architecture: "x86_64" 5157 ClusterStore: "etcd://localhost:2379" 5158 CgroupDriver: "cgroupfs" 5159 Containers: 11 5160 ContainersRunning: 7 5161 ContainersStopped: 3 5162 ContainersPaused: 1 5163 CpuCfsPeriod: true 5164 CpuCfsQuota: true 5165 Debug: false 5166 DockerRootDir: "/var/lib/docker" 5167 Driver: "btrfs" 5168 DriverStatus: 5169 - 5170 - "" 5171 ExperimentalBuild: false 5172 HttpProxy: "http://test:test@localhost:8080" 5173 HttpsProxy: "https://test:test@localhost:8080" 5174 ID: "7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS" 5175 IPv4Forwarding: true 5176 Images: 16 5177 IndexServerAddress: "https://index.docker.io/v1/" 5178 InitPath: "/usr/bin/docker" 5179 InitSha1: "" 5180 KernelMemory: true 5181 KernelVersion: "3.12.0-1-amd64" 5182 Labels: 5183 - "storage=ssd" 5184 MemTotal: 2099236864 5185 MemoryLimit: true 5186 NCPU: 1 5187 NEventsListener: 0 5188 NFd: 11 5189 NGoroutines: 21 5190 Name: "prod-server-42" 5191 NoProxy: "9.81.1.160" 5192 OomKillDisable: true 5193 OSType: "linux" 5194 OperatingSystem: "Boot2Docker" 5195 Plugins: 5196 Volume: 5197 - "local" 5198 Network: 5199 - "null" 5200 - "host" 5201 - "bridge" 5202 RegistryConfig: 5203 IndexConfigs: 5204 docker.io: 5205 Name: "docker.io" 5206 Official: true 5207 Secure: true 5208 InsecureRegistryCIDRs: 5209 - "127.0.0.0/8" 5210 SecurityOptions: 5211 - Key: "Name" 5212 Value: "seccomp" 5213 - Key: "Profile" 5214 Value: "default" 5215 - Key: "Name" 5216 Value: "apparmor" 5217 - Key: "Name" 5218 Value: "selinux" 5219 - Key: "Name" 5220 Value: "userns" 5221 ServerVersion: "1.9.0" 5222 SwapLimit: false 5223 SystemStatus: 5224 - 5225 - "State" 5226 - "Healthy" 5227 SystemTime: "2015-03-10T11:11:23.730591467-07:00" 5228 500: 5229 description: "Server error" 5230 schema: 5231 $ref: "#/definitions/ErrorResponse" 5232 tags: ["System"] 5233 /version: 5234 get: 5235 summary: "Get version" 5236 description: "Returns the version of Docker that is running and various information about the system that Docker is running on." 5237 operationId: "SystemVersion" 5238 produces: 5239 - "application/json" 5240 responses: 5241 200: 5242 description: "no error" 5243 schema: 5244 type: "object" 5245 properties: 5246 Version: 5247 type: "string" 5248 ApiVersion: 5249 type: "string" 5250 MinAPIVersion: 5251 type: "string" 5252 GitCommit: 5253 type: "string" 5254 GoVersion: 5255 type: "string" 5256 Os: 5257 type: "string" 5258 Arch: 5259 type: "string" 5260 KernelVersion: 5261 type: "string" 5262 Experimental: 5263 type: "boolean" 5264 BuildTime: 5265 type: "string" 5266 examples: 5267 application/json: 5268 Version: "1.13.0" 5269 Os: "linux" 5270 KernelVersion: "3.19.0-23-generic" 5271 GoVersion: "go1.6.3" 5272 GitCommit: "deadbee" 5273 Arch: "amd64" 5274 ApiVersion: "1.25" 5275 MinAPIVersion: "1.12" 5276 BuildTime: "2016-06-14T07:09:13.444803460+00:00" 5277 Experimental: true 5278 500: 5279 description: "server error" 5280 schema: 5281 $ref: "#/definitions/ErrorResponse" 5282 tags: ["System"] 5283 /_ping: 5284 get: 5285 summary: "Ping" 5286 description: "This is a dummy endpoint you can use to test if the server is accessible." 5287 operationId: "SystemPing" 5288 produces: 5289 - "text/plain" 5290 responses: 5291 200: 5292 description: "no error" 5293 schema: 5294 type: "string" 5295 example: "OK" 5296 500: 5297 description: "server error" 5298 schema: 5299 $ref: "#/definitions/ErrorResponse" 5300 tags: ["System"] 5301 /commit: 5302 post: 5303 summary: "Create a new image from a container" 5304 operationId: "ImageCommit" 5305 consumes: 5306 - "application/json" 5307 produces: 5308 - "application/json" 5309 responses: 5310 201: 5311 description: "no error" 5312 schema: 5313 $ref: "#/definitions/IdResponse" 5314 404: 5315 description: "no such container" 5316 schema: 5317 $ref: "#/definitions/ErrorResponse" 5318 examples: 5319 application/json: 5320 message: "No such container: c2ada9df5af8" 5321 500: 5322 description: "server error" 5323 schema: 5324 $ref: "#/definitions/ErrorResponse" 5325 parameters: 5326 - name: "containerConfig" 5327 in: "body" 5328 description: "The container configuration" 5329 schema: 5330 $ref: "#/definitions/Config" 5331 - name: "container" 5332 in: "query" 5333 description: "The ID or name of the container to commit" 5334 type: "string" 5335 - name: "repo" 5336 in: "query" 5337 description: "Repository name for the created image" 5338 type: "string" 5339 - name: "tag" 5340 in: "query" 5341 description: "Tag name for the create image" 5342 type: "string" 5343 - name: "comment" 5344 in: "query" 5345 description: "Commit message" 5346 type: "string" 5347 - name: "author" 5348 in: "query" 5349 description: "Author of the image (e.g., `John Hannibal Smith <hannibal@a-team.com>`)" 5350 type: "string" 5351 - name: "pause" 5352 in: "query" 5353 description: "Whether to pause the container before committing" 5354 type: "boolean" 5355 default: true 5356 - name: "changes" 5357 in: "query" 5358 description: "`Dockerfile` instructions to apply while committing" 5359 type: "string" 5360 tags: ["Image"] 5361 /events: 5362 get: 5363 summary: "Monitor events" 5364 description: | 5365 Stream real-time events from the server. 5366 5367 Various objects within Docker report events when something happens to them. 5368 5369 Containers report these events: `attach, commit, copy, create, destroy, detach, die, exec_create, exec_detach, exec_start, export, health_status, kill, oom, pause, rename, resize, restart, start, stop, top, unpause, update` 5370 5371 Images report these events: `delete, import, load, pull, push, save, tag, untag` 5372 5373 Volumes report these events: `create, mount, unmount, destroy` 5374 5375 Networks report these events: `create, connect, disconnect, destroy` 5376 5377 The Docker daemon reports these events: `reload` 5378 5379 operationId: "SystemEvents" 5380 produces: 5381 - "application/json" 5382 responses: 5383 200: 5384 description: "no error" 5385 schema: 5386 type: "object" 5387 properties: 5388 Type: 5389 description: "The type of object emitting the event" 5390 type: "string" 5391 Action: 5392 description: "The type of event" 5393 type: "string" 5394 Actor: 5395 type: "object" 5396 properties: 5397 ID: 5398 description: "The ID of the object emitting the event" 5399 type: "string" 5400 Attributes: 5401 description: "Various key/value attributes of the object, depending on its type" 5402 type: "object" 5403 additionalProperties: 5404 type: "string" 5405 time: 5406 description: "Timestamp of event" 5407 type: "integer" 5408 timeNano: 5409 description: "Timestamp of event, with nanosecond accuracy" 5410 type: "integer" 5411 format: "int64" 5412 examples: 5413 application/json: 5414 Type: "container" 5415 Action: "create" 5416 Actor: 5417 ID: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743" 5418 Attributes: 5419 com.example.some-label: "some-label-value" 5420 image: "alpine" 5421 name: "my-container" 5422 time: 1461943101 5423 400: 5424 description: "bad parameter" 5425 schema: 5426 $ref: "#/definitions/ErrorResponse" 5427 500: 5428 description: "server error" 5429 schema: 5430 $ref: "#/definitions/ErrorResponse" 5431 parameters: 5432 - name: "since" 5433 in: "query" 5434 description: "Show events created since this timestamp then stream new events." 5435 type: "string" 5436 - name: "until" 5437 in: "query" 5438 description: "Show events created until this timestamp then stop streaming." 5439 type: "string" 5440 - name: "filters" 5441 in: "query" 5442 description: | 5443 A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters: 5444 5445 - `container=<string>` container name or ID 5446 - `daemon=<string>` daemon name or ID 5447 - `event=<string>` event type 5448 - `image=<string>` image name or ID 5449 - `label=<string>` image or container label 5450 - `network=<string>` network name or ID 5451 - `plugin`=<string> plugin name or ID 5452 - `type=<string>` object to filter by, one of `container`, `image`, `volume`, `network`, or `daemon` 5453 - `volume=<string>` volume name or ID 5454 type: "string" 5455 tags: ["System"] 5456 /system/df: 5457 get: 5458 summary: "Get data usage information" 5459 operationId: "SystemDataUsage" 5460 responses: 5461 200: 5462 description: "no error" 5463 schema: 5464 type: "object" 5465 properties: 5466 LayersSize: 5467 type: "integer" 5468 format: "int64" 5469 Images: 5470 type: "array" 5471 items: 5472 $ref: "#/definitions/ImageSummary" 5473 Containers: 5474 type: "array" 5475 items: 5476 $ref: "#/definitions/ContainerSummary" 5477 Volumes: 5478 type: "array" 5479 items: 5480 $ref: "#/definitions/Volume" 5481 example: 5482 LayersSize: 1092588 5483 Images: 5484 - 5485 Id: "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749" 5486 ParentId: "" 5487 RepoTags: 5488 - "busybox:latest" 5489 RepoDigests: 5490 - "busybox@sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6" 5491 Created: 1466724217 5492 Size: 1092588 5493 SharedSize: 0 5494 VirtualSize: 1092588 5495 Labels: {} 5496 Containers: 1 5497 Containers: 5498 - 5499 Id: "e575172ed11dc01bfce087fb27bee502db149e1a0fad7c296ad300bbff178148" 5500 Names: 5501 - "/top" 5502 Image: "busybox" 5503 ImageID: "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749" 5504 Command: "top" 5505 Created: 1472592424 5506 Ports: [] 5507 SizeRootFs: 1092588 5508 Labels: {} 5509 State: "exited" 5510 Status: "Exited (0) 56 minutes ago" 5511 HostConfig: 5512 NetworkMode: "default" 5513 NetworkSettings: 5514 Networks: 5515 bridge: 5516 IPAMConfig: null 5517 Links: null 5518 Aliases: null 5519 NetworkID: "d687bc59335f0e5c9ee8193e5612e8aee000c8c62ea170cfb99c098f95899d92" 5520 EndpointID: "8ed5115aeaad9abb174f68dcf135b49f11daf597678315231a32ca28441dec6a" 5521 Gateway: "172.18.0.1" 5522 IPAddress: "172.18.0.2" 5523 IPPrefixLen: 16 5524 IPv6Gateway: "" 5525 GlobalIPv6Address: "" 5526 GlobalIPv6PrefixLen: 0 5527 MacAddress: "02:42:ac:12:00:02" 5528 Mounts: [] 5529 Volumes: 5530 - 5531 Name: "my-volume" 5532 Driver: "local" 5533 Mountpoint: "" 5534 Labels: null 5535 Scope: "" 5536 Options: null 5537 UsageData: 5538 Size: 0 5539 RefCount: 0 5540 500: 5541 description: "server error" 5542 schema: 5543 $ref: "#/definitions/ErrorResponse" 5544 tags: ["System"] 5545 /images/{name}/get: 5546 get: 5547 summary: "Export an image" 5548 description: | 5549 Get a tarball containing all images and metadata for a repository. 5550 5551 If `name` is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned. If `name` is an image ID, similarly only that image (and its parents) are returned, but with the exclusion of the `repositories` file in the tarball, as there were no image names referenced. 5552 5553 ### Image tarball format 5554 5555 An image tarball contains one directory per image layer (named using its long ID), each containing these files: 5556 5557 - `VERSION`: currently `1.0` - the file format version 5558 - `json`: detailed layer information, similar to `docker inspect layer_id` 5559 - `layer.tar`: A tarfile containing the filesystem changes in this layer 5560 5561 The `layer.tar` file contains `aufs` style `.wh..wh.aufs` files and directories for storing attribute changes and deletions. 5562 5563 If the tarball defines a repository, the tarball should also include a `repositories` file at the root that contains a list of repository and tag names mapped to layer IDs. 5564 5565 ```json 5566 { 5567 "hello-world": { 5568 "latest": "565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1" 5569 } 5570 } 5571 ``` 5572 operationId: "ImageGet" 5573 produces: 5574 - "application/x-tar" 5575 responses: 5576 200: 5577 description: "no error" 5578 schema: 5579 type: "string" 5580 format: "binary" 5581 500: 5582 description: "server error" 5583 schema: 5584 $ref: "#/definitions/ErrorResponse" 5585 parameters: 5586 - name: "name" 5587 in: "path" 5588 description: "Image name or ID" 5589 type: "string" 5590 required: true 5591 tags: ["Image"] 5592 /images/get: 5593 get: 5594 summary: "Export several images" 5595 description: | 5596 Get a tarball containing all images and metadata for several image repositories. 5597 5598 For each value of the `names` parameter: if it is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID. 5599 5600 For details on the format, see [the export image endpoint](#operation/ImageGet). 5601 operationId: "ImageGetAll" 5602 produces: 5603 - "application/x-tar" 5604 responses: 5605 200: 5606 description: "no error" 5607 schema: 5608 type: "string" 5609 format: "binary" 5610 500: 5611 description: "server error" 5612 schema: 5613 $ref: "#/definitions/ErrorResponse" 5614 parameters: 5615 - name: "names" 5616 in: "query" 5617 description: "Image names to filter by" 5618 type: "array" 5619 items: 5620 type: "string" 5621 tags: ["Image"] 5622 /images/load: 5623 post: 5624 summary: "Import images" 5625 description: | 5626 Load a set of images and tags into a repository. 5627 5628 For details on the format, see [the export image endpoint](#operation/ImageGet). 5629 operationId: "ImageLoad" 5630 consumes: 5631 - "application/x-tar" 5632 produces: 5633 - "application/json" 5634 responses: 5635 200: 5636 description: "no error" 5637 500: 5638 description: "server error" 5639 schema: 5640 $ref: "#/definitions/ErrorResponse" 5641 parameters: 5642 - name: "imagesTarball" 5643 in: "body" 5644 description: "Tar archive containing images" 5645 schema: 5646 type: "string" 5647 format: "binary" 5648 - name: "quiet" 5649 in: "query" 5650 description: "Suppress progress details during load." 5651 type: "boolean" 5652 default: false 5653 tags: ["Image"] 5654 /containers/{id}/exec: 5655 post: 5656 summary: "Create an exec instance" 5657 description: "Run a command inside a running container." 5658 operationId: "ContainerExec" 5659 consumes: 5660 - "application/json" 5661 produces: 5662 - "application/json" 5663 responses: 5664 201: 5665 description: "no error" 5666 schema: 5667 $ref: "#/definitions/IdResponse" 5668 404: 5669 description: "no such container" 5670 schema: 5671 $ref: "#/definitions/ErrorResponse" 5672 examples: 5673 application/json: 5674 message: "No such container: c2ada9df5af8" 5675 409: 5676 description: "container is paused" 5677 schema: 5678 $ref: "#/definitions/ErrorResponse" 5679 500: 5680 description: "Server error" 5681 schema: 5682 $ref: "#/definitions/ErrorResponse" 5683 parameters: 5684 - name: "execConfig" 5685 in: "body" 5686 description: "Exec configuration" 5687 schema: 5688 type: "object" 5689 properties: 5690 AttachStdin: 5691 type: "boolean" 5692 description: "Attach to `stdin` of the exec command." 5693 AttachStdout: 5694 type: "boolean" 5695 description: "Attach to `stdout` of the exec command." 5696 AttachStderr: 5697 type: "boolean" 5698 description: "Attach to `stderr` of the exec command." 5699 DetachKeys: 5700 type: "string" 5701 description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`." 5702 Tty: 5703 type: "boolean" 5704 description: "Allocate a pseudo-TTY." 5705 Env: 5706 description: "A list of environment variables in the form `[\"VAR=value\", ...]`." 5707 type: "array" 5708 items: 5709 type: "string" 5710 Cmd: 5711 type: "array" 5712 description: "Command to run, as a string or array of strings." 5713 items: 5714 type: "string" 5715 Privileged: 5716 type: "boolean" 5717 description: "Runs the exec process with extended privileges." 5718 default: false 5719 User: 5720 type: "string" 5721 description: "The user, and optionally, group to run the exec process inside the container. Format is one of: `user`, `user:group`, `uid`, or `uid:gid`." 5722 example: 5723 AttachStdin: false 5724 AttachStdout: true 5725 AttachStderr: true 5726 DetachKeys: "ctrl-p,ctrl-q" 5727 Tty: false 5728 Cmd: 5729 - "date" 5730 Env: 5731 - "FOO=bar" 5732 - "BAZ=quux" 5733 required: true 5734 - name: "id" 5735 in: "path" 5736 description: "ID or name of container" 5737 type: "string" 5738 required: true 5739 tags: ["Exec"] 5740 /exec/{id}/start: 5741 post: 5742 summary: "Start an exec instance" 5743 description: "Starts a previously set up exec instance. If detach is true, this endpoint returns immediately after starting the command. Otherwise, it sets up an interactive session with the command." 5744 operationId: "ExecStart" 5745 consumes: 5746 - "application/json" 5747 produces: 5748 - "application/vnd.docker.raw-stream" 5749 responses: 5750 200: 5751 description: "No error" 5752 404: 5753 description: "No such exec instance" 5754 schema: 5755 $ref: "#/definitions/ErrorResponse" 5756 409: 5757 description: "Container is stopped or paused" 5758 schema: 5759 $ref: "#/definitions/ErrorResponse" 5760 parameters: 5761 - name: "execStartConfig" 5762 in: "body" 5763 schema: 5764 type: "object" 5765 properties: 5766 Detach: 5767 type: "boolean" 5768 description: "Detach from the command." 5769 Tty: 5770 type: "boolean" 5771 description: "Allocate a pseudo-TTY." 5772 example: 5773 Detach: false 5774 Tty: false 5775 - name: "id" 5776 in: "path" 5777 description: "Exec instance ID" 5778 required: true 5779 type: "string" 5780 tags: ["Exec"] 5781 /exec/{id}/resize: 5782 post: 5783 summary: "Resize an exec instance" 5784 description: "Resize the TTY session used by an exec instance. This endpoint only works if `tty` was specified as part of creating and starting the exec instance." 5785 operationId: "ExecResize" 5786 responses: 5787 200: 5788 description: "No error" 5789 400: 5790 description: "bad parameter" 5791 schema: 5792 $ref: "#/definitions/ErrorResponse" 5793 404: 5794 description: "No such exec instance" 5795 schema: 5796 $ref: "#/definitions/ErrorResponse" 5797 500: 5798 description: "Server error" 5799 schema: 5800 $ref: "#/definitions/ErrorResponse" 5801 parameters: 5802 - name: "id" 5803 in: "path" 5804 description: "Exec instance ID" 5805 required: true 5806 type: "string" 5807 - name: "h" 5808 in: "query" 5809 description: "Height of the TTY session in characters" 5810 type: "integer" 5811 - name: "w" 5812 in: "query" 5813 description: "Width of the TTY session in characters" 5814 type: "integer" 5815 tags: ["Exec"] 5816 /exec/{id}/json: 5817 get: 5818 summary: "Inspect an exec instance" 5819 description: "Return low-level information about an exec instance." 5820 operationId: "ExecInspect" 5821 produces: 5822 - "application/json" 5823 responses: 5824 200: 5825 description: "No error" 5826 schema: 5827 type: "object" 5828 properties: 5829 ID: 5830 type: "string" 5831 Running: 5832 type: "boolean" 5833 ExitCode: 5834 type: "integer" 5835 ProcessConfig: 5836 $ref: "#/definitions/ProcessConfig" 5837 OpenStdin: 5838 type: "boolean" 5839 OpenStderr: 5840 type: "boolean" 5841 OpenStdout: 5842 type: "boolean" 5843 ContainerID: 5844 type: "string" 5845 Pid: 5846 type: "integer" 5847 description: "The system process ID for the exec process." 5848 examples: 5849 application/json: 5850 CanRemove: false 5851 ContainerID: "b53ee82b53a40c7dca428523e34f741f3abc51d9f297a14ff874bf761b995126" 5852 DetachKeys: "" 5853 ExitCode: 2 5854 ID: "f33bbfb39f5b142420f4759b2348913bd4a8d1a6d7fd56499cb41a1bb91d7b3b" 5855 OpenStderr: true 5856 OpenStdin: true 5857 OpenStdout: true 5858 ProcessConfig: 5859 arguments: 5860 - "-c" 5861 - "exit 2" 5862 entrypoint: "sh" 5863 privileged: false 5864 tty: true 5865 user: "1000" 5866 Running: false 5867 Pid: 42000 5868 404: 5869 description: "No such exec instance" 5870 schema: 5871 $ref: "#/definitions/ErrorResponse" 5872 500: 5873 description: "Server error" 5874 schema: 5875 $ref: "#/definitions/ErrorResponse" 5876 parameters: 5877 - name: "id" 5878 in: "path" 5879 description: "Exec instance ID" 5880 required: true 5881 type: "string" 5882 tags: ["Exec"] 5883 5884 /volumes: 5885 get: 5886 summary: "List volumes" 5887 operationId: "VolumeList" 5888 produces: ["application/json"] 5889 responses: 5890 200: 5891 description: "Summary volume data that matches the query" 5892 schema: 5893 type: "object" 5894 required: [Volumes, Warnings] 5895 properties: 5896 Volumes: 5897 type: "array" 5898 x-nullable: false 5899 description: "List of volumes" 5900 items: 5901 $ref: "#/definitions/Volume" 5902 Warnings: 5903 type: "array" 5904 x-nullable: false 5905 description: "Warnings that occurred when fetching the list of volumes" 5906 items: 5907 type: "string" 5908 5909 examples: 5910 application/json: 5911 Volumes: 5912 - Name: "tardis" 5913 Driver: "local" 5914 Mountpoint: "/var/lib/docker/volumes/tardis" 5915 Labels: 5916 com.example.some-label: "some-value" 5917 com.example.some-other-label: "some-other-value" 5918 Scope: "local" 5919 Options: 5920 device: "tmpfs" 5921 o: "size=100m,uid=1000" 5922 type: "tmpfs" 5923 Warnings: [] 5924 500: 5925 description: "Server error" 5926 schema: 5927 $ref: "#/definitions/ErrorResponse" 5928 parameters: 5929 - name: "filters" 5930 in: "query" 5931 description: | 5932 JSON encoded value of the filters (a `map[string][]string`) to 5933 process on the volumes list. Available filters: 5934 5935 - `dangling=<boolean>` When set to `true` (or `1`), returns all 5936 volumes that are not in use by a container. When set to `false` 5937 (or `0`), only volumes that are in use by one or more 5938 containers are returned. 5939 - `driver=<volume-driver-name>` Matches volumes based on their driver. 5940 - `label=<key>` or `label=<key>:<value>` Matches volumes based on 5941 the presence of a `label` alone or a `label` and a value. 5942 - `name=<volume-name>` Matches all or part of a volume name. 5943 type: "string" 5944 format: "json" 5945 tags: ["Volume"] 5946 5947 /volumes/create: 5948 post: 5949 summary: "Create a volume" 5950 operationId: "VolumeCreate" 5951 consumes: ["application/json"] 5952 produces: ["application/json"] 5953 responses: 5954 201: 5955 description: "The volume was created successfully" 5956 schema: 5957 $ref: "#/definitions/Volume" 5958 500: 5959 description: "Server error" 5960 schema: 5961 $ref: "#/definitions/ErrorResponse" 5962 parameters: 5963 - name: "volumeConfig" 5964 in: "body" 5965 required: true 5966 description: "Volume configuration" 5967 schema: 5968 type: "object" 5969 properties: 5970 Name: 5971 description: "The new volume's name. If not specified, Docker generates a name." 5972 type: "string" 5973 x-nullable: false 5974 Driver: 5975 description: "Name of the volume driver to use." 5976 type: "string" 5977 default: "local" 5978 x-nullable: false 5979 DriverOpts: 5980 description: "A mapping of driver options and values. These options are passed directly to the driver and are driver specific." 5981 type: "object" 5982 additionalProperties: 5983 type: "string" 5984 Labels: 5985 description: "User-defined key/value metadata." 5986 type: "object" 5987 additionalProperties: 5988 type: "string" 5989 example: 5990 Name: "tardis" 5991 Labels: 5992 com.example.some-label: "some-value" 5993 com.example.some-other-label: "some-other-value" 5994 Driver: "custom" 5995 tags: ["Volume"] 5996 5997 /volumes/{name}: 5998 get: 5999 summary: "Inspect a volume" 6000 operationId: "VolumeInspect" 6001 produces: ["application/json"] 6002 responses: 6003 200: 6004 description: "No error" 6005 schema: 6006 $ref: "#/definitions/Volume" 6007 404: 6008 description: "No such volume" 6009 schema: 6010 $ref: "#/definitions/ErrorResponse" 6011 500: 6012 description: "Server error" 6013 schema: 6014 $ref: "#/definitions/ErrorResponse" 6015 parameters: 6016 - name: "name" 6017 in: "path" 6018 required: true 6019 description: "Volume name or ID" 6020 type: "string" 6021 tags: ["Volume"] 6022 6023 delete: 6024 summary: "Remove a volume" 6025 description: "Instruct the driver to remove the volume." 6026 operationId: "VolumeDelete" 6027 responses: 6028 204: 6029 description: "The volume was removed" 6030 404: 6031 description: "No such volume or volume driver" 6032 schema: 6033 $ref: "#/definitions/ErrorResponse" 6034 409: 6035 description: "Volume is in use and cannot be removed" 6036 schema: 6037 $ref: "#/definitions/ErrorResponse" 6038 500: 6039 description: "Server error" 6040 schema: 6041 $ref: "#/definitions/ErrorResponse" 6042 parameters: 6043 - name: "name" 6044 in: "path" 6045 required: true 6046 description: "Volume name or ID" 6047 type: "string" 6048 - name: "force" 6049 in: "query" 6050 description: "Force the removal of the volume" 6051 type: "boolean" 6052 default: false 6053 tags: ["Volume"] 6054 /volumes/prune: 6055 post: 6056 summary: "Delete unused volumes" 6057 produces: 6058 - "application/json" 6059 operationId: "VolumePrune" 6060 responses: 6061 200: 6062 description: "No error" 6063 schema: 6064 type: "object" 6065 properties: 6066 VolumesDeleted: 6067 description: "Volumes that were deleted" 6068 type: "array" 6069 items: 6070 type: "string" 6071 SpaceReclaimed: 6072 description: "Disk space reclaimed in bytes" 6073 type: "integer" 6074 format: "int64" 6075 500: 6076 description: "Server error" 6077 schema: 6078 $ref: "#/definitions/ErrorResponse" 6079 tags: ["Volume"] 6080 /networks: 6081 get: 6082 summary: "List networks" 6083 operationId: "NetworkList" 6084 produces: 6085 - "application/json" 6086 responses: 6087 200: 6088 description: "No error" 6089 schema: 6090 type: "array" 6091 items: 6092 $ref: "#/definitions/Network" 6093 examples: 6094 application/json: 6095 - Name: "bridge" 6096 Id: "f2de39df4171b0dc801e8002d1d999b77256983dfc63041c0f34030aa3977566" 6097 Created: "2016-10-19T06:21:00.416543526Z" 6098 Scope: "local" 6099 Driver: "bridge" 6100 EnableIPv6: false 6101 Internal: false 6102 Attachable: false 6103 IPAM: 6104 Driver: "default" 6105 Config: 6106 - 6107 Subnet: "172.17.0.0/16" 6108 Containers: 6109 39b69226f9d79f5634485fb236a23b2fe4e96a0a94128390a7fbbcc167065867: 6110 EndpointID: "ed2419a97c1d9954d05b46e462e7002ea552f216e9b136b80a7db8d98b442eda" 6111 MacAddress: "02:42:ac:11:00:02" 6112 IPv4Address: "172.17.0.2/16" 6113 IPv6Address: "" 6114 Options: 6115 com.docker.network.bridge.default_bridge: "true" 6116 com.docker.network.bridge.enable_icc: "true" 6117 com.docker.network.bridge.enable_ip_masquerade: "true" 6118 com.docker.network.bridge.host_binding_ipv4: "0.0.0.0" 6119 com.docker.network.bridge.name: "docker0" 6120 com.docker.network.driver.mtu: "1500" 6121 - Name: "none" 6122 Id: "e086a3893b05ab69242d3c44e49483a3bbbd3a26b46baa8f61ab797c1088d794" 6123 Created: "0001-01-01T00:00:00Z" 6124 Scope: "local" 6125 Driver: "null" 6126 EnableIPv6: false 6127 Internal: false 6128 Attachable: false 6129 IPAM: 6130 Driver: "default" 6131 Config: [] 6132 Containers: {} 6133 Options: {} 6134 - Name: "host" 6135 Id: "13e871235c677f196c4e1ecebb9dc733b9b2d2ab589e30c539efeda84a24215e" 6136 Created: "0001-01-01T00:00:00Z" 6137 Scope: "local" 6138 Driver: "host" 6139 EnableIPv6: false 6140 Internal: false 6141 Attachable: false 6142 IPAM: 6143 Driver: "default" 6144 Config: [] 6145 Containers: {} 6146 Options: {} 6147 500: 6148 description: "Server error" 6149 schema: 6150 $ref: "#/definitions/ErrorResponse" 6151 parameters: 6152 - name: "filters" 6153 in: "query" 6154 description: | 6155 JSON encoded value of the filters (a `map[string][]string`) to process on the networks list. Available filters: 6156 6157 - `driver=<driver-name>` Matches a network's driver. 6158 - `id=<network-id>` Matches all or part of a network ID. 6159 - `label=<key>` or `label=<key>=<value>` of a network label. 6160 - `name=<network-name>` Matches all or part of a network name. 6161 - `type=["custom"|"builtin"]` Filters networks by type. The `custom` keyword returns all user-defined networks. 6162 type: "string" 6163 tags: ["Network"] 6164 6165 /networks/{id}: 6166 get: 6167 summary: "Inspect a network" 6168 operationId: "NetworkInspect" 6169 produces: 6170 - "application/json" 6171 responses: 6172 200: 6173 description: "No error" 6174 schema: 6175 $ref: "#/definitions/Network" 6176 404: 6177 description: "Network not found" 6178 schema: 6179 $ref: "#/definitions/ErrorResponse" 6180 parameters: 6181 - name: "id" 6182 in: "path" 6183 description: "Network ID or name" 6184 required: true 6185 type: "string" 6186 tags: ["Network"] 6187 6188 delete: 6189 summary: "Remove a network" 6190 operationId: "NetworkDelete" 6191 responses: 6192 204: 6193 description: "No error" 6194 404: 6195 description: "no such network" 6196 schema: 6197 $ref: "#/definitions/ErrorResponse" 6198 500: 6199 description: "Server error" 6200 schema: 6201 $ref: "#/definitions/ErrorResponse" 6202 parameters: 6203 - name: "id" 6204 in: "path" 6205 description: "Network ID or name" 6206 required: true 6207 type: "string" 6208 tags: ["Network"] 6209 6210 /networks/create: 6211 post: 6212 summary: "Create a network" 6213 operationId: "NetworkCreate" 6214 consumes: 6215 - "application/json" 6216 produces: 6217 - "application/json" 6218 responses: 6219 201: 6220 description: "No error" 6221 schema: 6222 type: "object" 6223 properties: 6224 Id: 6225 description: "The ID of the created network." 6226 type: "string" 6227 Warning: 6228 type: "string" 6229 example: 6230 Id: "22be93d5babb089c5aab8dbc369042fad48ff791584ca2da2100db837a1c7c30" 6231 Warning: "" 6232 400: 6233 description: "bad parameter" 6234 schema: 6235 $ref: "#/definitions/ErrorResponse" 6236 403: 6237 description: "operation not supported for pre-defined networks" 6238 schema: 6239 $ref: "#/definitions/ErrorResponse" 6240 404: 6241 description: "plugin not found" 6242 schema: 6243 $ref: "#/definitions/ErrorResponse" 6244 500: 6245 description: "Server error" 6246 schema: 6247 $ref: "#/definitions/ErrorResponse" 6248 parameters: 6249 - name: "networkConfig" 6250 in: "body" 6251 description: "Network configuration" 6252 required: true 6253 schema: 6254 type: "object" 6255 required: ["Name"] 6256 properties: 6257 Name: 6258 description: "The network's name." 6259 type: "string" 6260 CheckDuplicate: 6261 description: "Check for networks with duplicate names." 6262 type: "boolean" 6263 Driver: 6264 description: "Name of the network driver plugin to use." 6265 type: "string" 6266 default: "bridge" 6267 Internal: 6268 description: "Restrict external access to the network." 6269 type: "boolean" 6270 Attachable: 6271 description: "Globally scoped network is manually attachable by regular containers from workers in swarm mode." 6272 type: "boolean" 6273 IPAM: 6274 description: "Optional custom IP scheme for the network." 6275 $ref: "#/definitions/IPAM" 6276 EnableIPv6: 6277 description: "Enable IPv6 on the network." 6278 type: "boolean" 6279 Options: 6280 description: "Network specific options to be used by the drivers." 6281 type: "object" 6282 additionalProperties: 6283 type: "string" 6284 Labels: 6285 description: "User-defined key/value metadata." 6286 type: "object" 6287 additionalProperties: 6288 type: "string" 6289 example: 6290 Name: "isolated_nw" 6291 CheckDuplicate: false 6292 Driver: "bridge" 6293 EnableIPv6: true 6294 IPAM: 6295 Driver: "default" 6296 Config: 6297 - Subnet: "172.20.0.0/16" 6298 IPRange: "172.20.10.0/24" 6299 Gateway: "172.20.10.11" 6300 - Subnet: "2001:db8:abcd::/64" 6301 Gateway: "2001:db8:abcd::1011" 6302 Options: 6303 foo: "bar" 6304 Internal: true 6305 Attachable: false 6306 Options: 6307 com.docker.network.bridge.default_bridge: "true" 6308 com.docker.network.bridge.enable_icc: "true" 6309 com.docker.network.bridge.enable_ip_masquerade: "true" 6310 com.docker.network.bridge.host_binding_ipv4: "0.0.0.0" 6311 com.docker.network.bridge.name: "docker0" 6312 com.docker.network.driver.mtu: "1500" 6313 Labels: 6314 com.example.some-label: "some-value" 6315 com.example.some-other-label: "some-other-value" 6316 tags: ["Network"] 6317 6318 /networks/{id}/connect: 6319 post: 6320 summary: "Connect a container to a network" 6321 operationId: "NetworkConnect" 6322 consumes: 6323 - "application/octet-stream" 6324 responses: 6325 200: 6326 description: "No error" 6327 403: 6328 description: "Operation not supported for swarm scoped networks" 6329 schema: 6330 $ref: "#/definitions/ErrorResponse" 6331 404: 6332 description: "Network or container not found" 6333 schema: 6334 $ref: "#/definitions/ErrorResponse" 6335 500: 6336 description: "Server error" 6337 schema: 6338 $ref: "#/definitions/ErrorResponse" 6339 parameters: 6340 - name: "id" 6341 in: "path" 6342 description: "Network ID or name" 6343 required: true 6344 type: "string" 6345 - name: "container" 6346 in: "body" 6347 required: true 6348 schema: 6349 type: "object" 6350 properties: 6351 Container: 6352 type: "string" 6353 description: "The ID or name of the container to connect to the network." 6354 EndpointConfig: 6355 $ref: "#/definitions/EndpointSettings" 6356 example: 6357 Container: "3613f73ba0e4" 6358 EndpointConfig: 6359 IPAMConfig: 6360 IPv4Address: "172.24.56.89" 6361 IPv6Address: "2001:db8::5689" 6362 tags: ["Network"] 6363 6364 /networks/{id}/disconnect: 6365 post: 6366 summary: "Disconnect a container from a network" 6367 operationId: "NetworkDisconnect" 6368 consumes: 6369 - "application/json" 6370 responses: 6371 200: 6372 description: "No error" 6373 403: 6374 description: "Operation not supported for swarm scoped networks" 6375 schema: 6376 $ref: "#/definitions/ErrorResponse" 6377 404: 6378 description: "Network or container not found" 6379 schema: 6380 $ref: "#/definitions/ErrorResponse" 6381 500: 6382 description: "Server error" 6383 schema: 6384 $ref: "#/definitions/ErrorResponse" 6385 parameters: 6386 - name: "id" 6387 in: "path" 6388 description: "Network ID or name" 6389 required: true 6390 type: "string" 6391 - name: "container" 6392 in: "body" 6393 required: true 6394 schema: 6395 type: "object" 6396 properties: 6397 Container: 6398 type: "string" 6399 description: "The ID or name of the container to disconnect from the network." 6400 Force: 6401 type: "boolean" 6402 description: "Force the container to disconnect from the network." 6403 tags: ["Network"] 6404 /networks/prune: 6405 post: 6406 summary: "Delete unused networks" 6407 consumes: 6408 - "application/json" 6409 produces: 6410 - "application/json" 6411 operationId: "NetworkPrune" 6412 responses: 6413 200: 6414 description: "No error" 6415 schema: 6416 type: "object" 6417 properties: 6418 NetworksDeleted: 6419 description: "Networks that were deleted" 6420 type: "array" 6421 items: 6422 type: "string" 6423 500: 6424 description: "Server error" 6425 schema: 6426 $ref: "#/definitions/ErrorResponse" 6427 tags: ["Network"] 6428 /plugins: 6429 get: 6430 summary: "List plugins" 6431 operationId: "PluginList" 6432 description: "Returns information about installed plugins." 6433 produces: ["application/json"] 6434 responses: 6435 200: 6436 description: "No error" 6437 schema: 6438 type: "array" 6439 items: 6440 $ref: "#/definitions/Plugin" 6441 example: 6442 - Id: "5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078" 6443 Name: "tiborvass/sample-volume-plugin" 6444 Tag: "latest" 6445 Active: true 6446 Settings: 6447 Env: 6448 - "DEBUG=0" 6449 Args: null 6450 Devices: null 6451 Config: 6452 Description: "A sample volume plugin for Docker" 6453 Documentation: "https://docs.docker.com/engine/extend/plugins/" 6454 Interface: 6455 Types: 6456 - "docker.volumedriver/1.0" 6457 Socket: "plugins.sock" 6458 Entrypoint: 6459 - "/usr/bin/sample-volume-plugin" 6460 - "/data" 6461 WorkDir: "" 6462 User: {} 6463 Network: 6464 Type: "" 6465 Linux: 6466 Capabilities: null 6467 AllowAllDevices: false 6468 Devices: null 6469 Mounts: null 6470 PropagatedMount: "/data" 6471 Env: 6472 - Name: "DEBUG" 6473 Description: "If set, prints debug messages" 6474 Settable: null 6475 Value: "0" 6476 Args: 6477 Name: "args" 6478 Description: "command line arguments" 6479 Settable: null 6480 Value: [] 6481 500: 6482 description: "Server error" 6483 schema: 6484 $ref: "#/definitions/ErrorResponse" 6485 tags: ["Plugin"] 6486 6487 /plugins/privileges: 6488 get: 6489 summary: "Get plugin privileges" 6490 operationId: "GetPluginPrivileges" 6491 responses: 6492 200: 6493 description: "no error" 6494 schema: 6495 type: "array" 6496 items: 6497 description: "Describes a permission the user has to accept upon installing the plugin." 6498 type: "object" 6499 properties: 6500 Name: 6501 type: "string" 6502 Description: 6503 type: "string" 6504 Value: 6505 type: "array" 6506 items: 6507 type: "string" 6508 example: 6509 - Name: "network" 6510 Description: "" 6511 Value: 6512 - "host" 6513 - Name: "mount" 6514 Description: "" 6515 Value: 6516 - "/data" 6517 - Name: "device" 6518 Description: "" 6519 Value: 6520 - "/dev/cpu_dma_latency" 6521 500: 6522 description: "server error" 6523 schema: 6524 $ref: "#/definitions/ErrorResponse" 6525 parameters: 6526 - name: "remote" 6527 in: "query" 6528 description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." 6529 required: true 6530 type: "string" 6531 tags: 6532 - "Plugin" 6533 6534 /plugins/pull: 6535 post: 6536 summary: "Install a plugin" 6537 operationId: "PluginPull" 6538 description: | 6539 Pulls and installs a plugin. After the plugin is installed, it can be enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable). 6540 produces: 6541 - "application/json" 6542 responses: 6543 204: 6544 description: "no error" 6545 500: 6546 description: "server error" 6547 schema: 6548 $ref: "#/definitions/ErrorResponse" 6549 parameters: 6550 - name: "remote" 6551 in: "query" 6552 description: | 6553 Remote reference for plugin to install. 6554 6555 The `:latest` tag is optional, and is used as the default if omitted. 6556 required: true 6557 type: "string" 6558 - name: "name" 6559 in: "query" 6560 description: | 6561 Local name for the pulled plugin. 6562 6563 The `:latest` tag is optional, and is used as the default if omitted. 6564 required: false 6565 type: "string" 6566 - name: "X-Registry-Auth" 6567 in: "header" 6568 description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)" 6569 type: "string" 6570 - name: "body" 6571 in: "body" 6572 schema: 6573 type: "array" 6574 items: 6575 description: "Describes a permission accepted by the user upon installing the plugin." 6576 type: "object" 6577 properties: 6578 Name: 6579 type: "string" 6580 Description: 6581 type: "string" 6582 Value: 6583 type: "array" 6584 items: 6585 type: "string" 6586 example: 6587 - Name: "network" 6588 Description: "" 6589 Value: 6590 - "host" 6591 - Name: "mount" 6592 Description: "" 6593 Value: 6594 - "/data" 6595 - Name: "device" 6596 Description: "" 6597 Value: 6598 - "/dev/cpu_dma_latency" 6599 tags: ["Plugin"] 6600 /plugins/{name}/json: 6601 get: 6602 summary: "Inspect a plugin" 6603 operationId: "PluginInspect" 6604 responses: 6605 200: 6606 description: "no error" 6607 schema: 6608 $ref: "#/definitions/Plugin" 6609 404: 6610 description: "plugin is not installed" 6611 schema: 6612 $ref: "#/definitions/ErrorResponse" 6613 500: 6614 description: "server error" 6615 schema: 6616 $ref: "#/definitions/ErrorResponse" 6617 parameters: 6618 - name: "name" 6619 in: "path" 6620 description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." 6621 required: true 6622 type: "string" 6623 tags: ["Plugin"] 6624 /plugins/{name}: 6625 delete: 6626 summary: "Remove a plugin" 6627 operationId: "PluginDelete" 6628 responses: 6629 200: 6630 description: "no error" 6631 schema: 6632 $ref: "#/definitions/Plugin" 6633 404: 6634 description: "plugin is not installed" 6635 schema: 6636 $ref: "#/definitions/ErrorResponse" 6637 500: 6638 description: "server error" 6639 schema: 6640 $ref: "#/definitions/ErrorResponse" 6641 parameters: 6642 - name: "name" 6643 in: "path" 6644 description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." 6645 required: true 6646 type: "string" 6647 - name: "force" 6648 in: "query" 6649 description: "Disable the plugin before removing. This may result in issues if the plugin is in use by a container." 6650 type: "boolean" 6651 default: false 6652 tags: ["Plugin"] 6653 /plugins/{name}/enable: 6654 post: 6655 summary: "Enable a plugin" 6656 operationId: "PluginEnable" 6657 responses: 6658 200: 6659 description: "no error" 6660 404: 6661 description: "plugin is not installed" 6662 schema: 6663 $ref: "#/definitions/ErrorResponse" 6664 500: 6665 description: "server error" 6666 schema: 6667 $ref: "#/definitions/ErrorResponse" 6668 parameters: 6669 - name: "name" 6670 in: "path" 6671 description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." 6672 required: true 6673 type: "string" 6674 - name: "timeout" 6675 in: "query" 6676 description: "Set the HTTP client timeout (in seconds)" 6677 type: "integer" 6678 default: 0 6679 tags: ["Plugin"] 6680 /plugins/{name}/disable: 6681 post: 6682 summary: "Disable a plugin" 6683 operationId: "PluginDisable" 6684 responses: 6685 200: 6686 description: "no error" 6687 404: 6688 description: "plugin is not installed" 6689 schema: 6690 $ref: "#/definitions/ErrorResponse" 6691 500: 6692 description: "server error" 6693 schema: 6694 $ref: "#/definitions/ErrorResponse" 6695 parameters: 6696 - name: "name" 6697 in: "path" 6698 description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." 6699 required: true 6700 type: "string" 6701 tags: ["Plugin"] 6702 /plugins/{name}/upgrade: 6703 post: 6704 summary: "Upgrade a plugin" 6705 operationId: "PluginUpgrade" 6706 responses: 6707 204: 6708 description: "no error" 6709 404: 6710 description: "plugin not installed" 6711 schema: 6712 $ref: "#/definitions/ErrorResponse" 6713 500: 6714 description: "server error" 6715 schema: 6716 $ref: "#/definitions/ErrorResponse" 6717 parameters: 6718 - name: "name" 6719 in: "path" 6720 description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." 6721 required: true 6722 type: "string" 6723 - name: "remote" 6724 in: "query" 6725 description: | 6726 Remote reference to upgrade to. 6727 6728 The `:latest` tag is optional, and is used as the default if omitted. 6729 required: true 6730 type: "string" 6731 - name: "X-Registry-Auth" 6732 in: "header" 6733 description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)" 6734 type: "string" 6735 - name: "body" 6736 in: "body" 6737 schema: 6738 type: "array" 6739 items: 6740 description: "Describes a permission accepted by the user upon installing the plugin." 6741 type: "object" 6742 properties: 6743 Name: 6744 type: "string" 6745 Description: 6746 type: "string" 6747 Value: 6748 type: "array" 6749 items: 6750 type: "string" 6751 example: 6752 - Name: "network" 6753 Description: "" 6754 Value: 6755 - "host" 6756 - Name: "mount" 6757 Description: "" 6758 Value: 6759 - "/data" 6760 - Name: "device" 6761 Description: "" 6762 Value: 6763 - "/dev/cpu_dma_latency" 6764 tags: ["Plugin"] 6765 /plugins/create: 6766 post: 6767 summary: "Create a plugin" 6768 operationId: "PluginCreate" 6769 consumes: 6770 - "application/x-tar" 6771 responses: 6772 204: 6773 description: "no error" 6774 500: 6775 description: "server error" 6776 schema: 6777 $ref: "#/definitions/ErrorResponse" 6778 parameters: 6779 - name: "name" 6780 in: "query" 6781 description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." 6782 required: true 6783 type: "string" 6784 - name: "tarContext" 6785 in: "body" 6786 description: "Path to tar containing plugin rootfs and manifest" 6787 schema: 6788 type: "string" 6789 format: "binary" 6790 tags: ["Plugin"] 6791 /plugins/{name}/push: 6792 post: 6793 summary: "Push a plugin" 6794 operationId: "PluginPush" 6795 description: | 6796 Push a plugin to the registry. 6797 parameters: 6798 - name: "name" 6799 in: "path" 6800 description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." 6801 required: true 6802 type: "string" 6803 responses: 6804 200: 6805 description: "no error" 6806 404: 6807 description: "plugin not installed" 6808 schema: 6809 $ref: "#/definitions/ErrorResponse" 6810 500: 6811 description: "server error" 6812 schema: 6813 $ref: "#/definitions/ErrorResponse" 6814 tags: ["Plugin"] 6815 /plugins/{name}/set: 6816 post: 6817 summary: "Configure a plugin" 6818 operationId: "PluginSet" 6819 consumes: 6820 - "application/json" 6821 parameters: 6822 - name: "name" 6823 in: "path" 6824 description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." 6825 required: true 6826 type: "string" 6827 - name: "body" 6828 in: "body" 6829 schema: 6830 type: "array" 6831 items: 6832 type: "string" 6833 example: ["DEBUG=1"] 6834 responses: 6835 204: 6836 description: "No error" 6837 404: 6838 description: "Plugin not installed" 6839 schema: 6840 $ref: "#/definitions/ErrorResponse" 6841 500: 6842 description: "Server error" 6843 schema: 6844 $ref: "#/definitions/ErrorResponse" 6845 tags: ["Plugin"] 6846 /nodes: 6847 get: 6848 summary: "List nodes" 6849 operationId: "NodeList" 6850 responses: 6851 200: 6852 description: "no error" 6853 schema: 6854 type: "array" 6855 items: 6856 $ref: "#/definitions/Node" 6857 500: 6858 description: "server error" 6859 schema: 6860 $ref: "#/definitions/ErrorResponse" 6861 503: 6862 description: "node is not part of a swarm" 6863 schema: 6864 $ref: "#/definitions/ErrorResponse" 6865 parameters: 6866 - name: "filters" 6867 in: "query" 6868 description: | 6869 Filters to process on the nodes list, encoded as JSON (a `map[string][]string`). 6870 6871 Available filters: 6872 - `id=<node id>` 6873 - `label=<engine label>` 6874 - `membership=`(`accepted`|`pending`)` 6875 - `name=<node name>` 6876 - `role=`(`manager`|`worker`)` 6877 type: "string" 6878 tags: ["Node"] 6879 /nodes/{id}: 6880 get: 6881 summary: "Inspect a node" 6882 operationId: "NodeInspect" 6883 responses: 6884 200: 6885 description: "no error" 6886 schema: 6887 $ref: "#/definitions/Node" 6888 404: 6889 description: "no such node" 6890 schema: 6891 $ref: "#/definitions/ErrorResponse" 6892 500: 6893 description: "server error" 6894 schema: 6895 $ref: "#/definitions/ErrorResponse" 6896 503: 6897 description: "node is not part of a swarm" 6898 schema: 6899 $ref: "#/definitions/ErrorResponse" 6900 parameters: 6901 - name: "id" 6902 in: "path" 6903 description: "The ID or name of the node" 6904 type: "string" 6905 required: true 6906 tags: ["Node"] 6907 delete: 6908 summary: "Delete a node" 6909 operationId: "NodeDelete" 6910 responses: 6911 200: 6912 description: "no error" 6913 404: 6914 description: "no such node" 6915 schema: 6916 $ref: "#/definitions/ErrorResponse" 6917 500: 6918 description: "server error" 6919 schema: 6920 $ref: "#/definitions/ErrorResponse" 6921 503: 6922 description: "node is not part of a swarm" 6923 schema: 6924 $ref: "#/definitions/ErrorResponse" 6925 parameters: 6926 - name: "id" 6927 in: "path" 6928 description: "The ID or name of the node" 6929 type: "string" 6930 required: true 6931 - name: "force" 6932 in: "query" 6933 description: "Force remove a node from the swarm" 6934 default: false 6935 type: "boolean" 6936 tags: ["Node"] 6937 /nodes/{id}/update: 6938 post: 6939 summary: "Update a node" 6940 operationId: "NodeUpdate" 6941 responses: 6942 200: 6943 description: "no error" 6944 404: 6945 description: "no such node" 6946 schema: 6947 $ref: "#/definitions/ErrorResponse" 6948 500: 6949 description: "server error" 6950 schema: 6951 $ref: "#/definitions/ErrorResponse" 6952 503: 6953 description: "node is not part of a swarm" 6954 schema: 6955 $ref: "#/definitions/ErrorResponse" 6956 parameters: 6957 - name: "id" 6958 in: "path" 6959 description: "The ID of the node" 6960 type: "string" 6961 required: true 6962 - name: "body" 6963 in: "body" 6964 schema: 6965 $ref: "#/definitions/NodeSpec" 6966 - name: "version" 6967 in: "query" 6968 description: "The version number of the node object being updated. This is required to avoid conflicting writes." 6969 type: "integer" 6970 format: "int64" 6971 required: true 6972 tags: ["Node"] 6973 /swarm: 6974 get: 6975 summary: "Inspect swarm" 6976 operationId: "SwarmInspect" 6977 responses: 6978 200: 6979 description: "no error" 6980 schema: 6981 allOf: 6982 - $ref: "#/definitions/ClusterInfo" 6983 - type: "object" 6984 properties: 6985 JoinTokens: 6986 description: "The tokens workers and managers need to join the swarm." 6987 type: "object" 6988 properties: 6989 Worker: 6990 description: "The token workers can use to join the swarm." 6991 type: "string" 6992 Manager: 6993 description: "The token managers can use to join the swarm." 6994 type: "string" 6995 example: 6996 CreatedAt: "2016-08-15T16:00:20.349727406Z" 6997 Spec: 6998 Dispatcher: 6999 HeartbeatPeriod: 5000000000 7000 Orchestration: 7001 TaskHistoryRetentionLimit: 10 7002 CAConfig: 7003 NodeCertExpiry: 7776000000000000 7004 Raft: 7005 LogEntriesForSlowFollowers: 500 7006 HeartbeatTick: 1 7007 SnapshotInterval: 10000 7008 ElectionTick: 3 7009 TaskDefaults: {} 7010 EncryptionConfig: 7011 AutoLockManagers: false 7012 Name: "default" 7013 JoinTokens: 7014 Worker: "SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-6qmn92w6bu3jdvnglku58u11a" 7015 Manager: "SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-8llk83c4wm9lwioey2s316r9l" 7016 ID: "70ilmkj2f6sp2137c753w2nmt" 7017 UpdatedAt: "2016-08-15T16:32:09.623207604Z" 7018 Version: 7019 Index: 51 7020 404: 7021 description: "no such swarm" 7022 schema: 7023 $ref: "#/definitions/ErrorResponse" 7024 500: 7025 description: "server error" 7026 schema: 7027 $ref: "#/definitions/ErrorResponse" 7028 503: 7029 description: "node is not part of a swarm" 7030 schema: 7031 $ref: "#/definitions/ErrorResponse" 7032 tags: ["Swarm"] 7033 /swarm/init: 7034 post: 7035 summary: "Initialize a new swarm" 7036 operationId: "SwarmInit" 7037 produces: 7038 - "application/json" 7039 - "text/plain" 7040 responses: 7041 200: 7042 description: "no error" 7043 schema: 7044 description: "The node ID" 7045 type: "string" 7046 example: "7v2t30z9blmxuhnyo6s4cpenp" 7047 400: 7048 description: "bad parameter" 7049 schema: 7050 $ref: "#/definitions/ErrorResponse" 7051 500: 7052 description: "server error" 7053 schema: 7054 $ref: "#/definitions/ErrorResponse" 7055 503: 7056 description: "node is already part of a swarm" 7057 schema: 7058 $ref: "#/definitions/ErrorResponse" 7059 parameters: 7060 - name: "body" 7061 in: "body" 7062 required: true 7063 schema: 7064 type: "object" 7065 properties: 7066 ListenAddr: 7067 description: "Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the default swarm listening port is used." 7068 type: "string" 7069 AdvertiseAddr: 7070 description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible." 7071 type: "string" 7072 ForceNewCluster: 7073 description: "Force creation of a new swarm." 7074 type: "boolean" 7075 Spec: 7076 $ref: "#/definitions/SwarmSpec" 7077 example: 7078 ListenAddr: "0.0.0.0:2377" 7079 AdvertiseAddr: "192.168.1.1:2377" 7080 ForceNewCluster: false 7081 Spec: 7082 Orchestration: {} 7083 Raft: {} 7084 Dispatcher: {} 7085 CAConfig: {} 7086 EncryptionConfig: 7087 AutoLockManagers: false 7088 tags: ["Swarm"] 7089 /swarm/join: 7090 post: 7091 summary: "Join an existing swarm" 7092 operationId: "SwarmJoin" 7093 responses: 7094 200: 7095 description: "no error" 7096 400: 7097 description: "bad parameter" 7098 schema: 7099 $ref: "#/definitions/ErrorResponse" 7100 500: 7101 description: "server error" 7102 schema: 7103 $ref: "#/definitions/ErrorResponse" 7104 503: 7105 description: "node is already part of a swarm" 7106 schema: 7107 $ref: "#/definitions/ErrorResponse" 7108 parameters: 7109 - name: "body" 7110 in: "body" 7111 required: true 7112 schema: 7113 type: "object" 7114 properties: 7115 ListenAddr: 7116 description: "Listen address used for inter-manager communication if the node gets promoted to manager, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP)." 7117 type: "string" 7118 AdvertiseAddr: 7119 description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible." 7120 type: "string" 7121 RemoteAddrs: 7122 description: "Addresses of manager nodes already participating in the swarm." 7123 type: "string" 7124 JoinToken: 7125 description: "Secret token for joining this swarm." 7126 type: "string" 7127 example: 7128 ListenAddr: "0.0.0.0:2377" 7129 AdvertiseAddr: "192.168.1.1:2377" 7130 RemoteAddrs: 7131 - "node1:2377" 7132 JoinToken: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2" 7133 tags: ["Swarm"] 7134 /swarm/leave: 7135 post: 7136 summary: "Leave a swarm" 7137 operationId: "SwarmLeave" 7138 responses: 7139 200: 7140 description: "no error" 7141 500: 7142 description: "server error" 7143 schema: 7144 $ref: "#/definitions/ErrorResponse" 7145 503: 7146 description: "node is not part of a swarm" 7147 schema: 7148 $ref: "#/definitions/ErrorResponse" 7149 parameters: 7150 - name: "force" 7151 description: "Force leave swarm, even if this is the last manager or that it will break the cluster." 7152 in: "query" 7153 type: "boolean" 7154 default: false 7155 tags: ["Swarm"] 7156 /swarm/update: 7157 post: 7158 summary: "Update a swarm" 7159 operationId: "SwarmUpdate" 7160 responses: 7161 200: 7162 description: "no error" 7163 400: 7164 description: "bad parameter" 7165 schema: 7166 $ref: "#/definitions/ErrorResponse" 7167 500: 7168 description: "server error" 7169 schema: 7170 $ref: "#/definitions/ErrorResponse" 7171 503: 7172 description: "node is not part of a swarm" 7173 schema: 7174 $ref: "#/definitions/ErrorResponse" 7175 parameters: 7176 - name: "body" 7177 in: "body" 7178 required: true 7179 schema: 7180 $ref: "#/definitions/SwarmSpec" 7181 - name: "version" 7182 in: "query" 7183 description: "The version number of the swarm object being updated. This is required to avoid conflicting writes." 7184 type: "integer" 7185 format: "int64" 7186 required: true 7187 - name: "rotateWorkerToken" 7188 in: "query" 7189 description: "Rotate the worker join token." 7190 type: "boolean" 7191 default: false 7192 - name: "rotateManagerToken" 7193 in: "query" 7194 description: "Rotate the manager join token." 7195 type: "boolean" 7196 default: false 7197 - name: "rotateManagerUnlockKey" 7198 in: "query" 7199 description: "Rotate the manager unlock key." 7200 type: "boolean" 7201 default: false 7202 tags: ["Swarm"] 7203 /swarm/unlockkey: 7204 get: 7205 summary: "Get the unlock key" 7206 operationId: "SwarmUnlockkey" 7207 consumes: 7208 - "application/json" 7209 responses: 7210 200: 7211 description: "no error" 7212 schema: 7213 type: "object" 7214 properties: 7215 UnlockKey: 7216 description: "The swarm's unlock key." 7217 type: "string" 7218 example: 7219 UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8" 7220 500: 7221 description: "server error" 7222 schema: 7223 $ref: "#/definitions/ErrorResponse" 7224 503: 7225 description: "node is not part of a swarm" 7226 schema: 7227 $ref: "#/definitions/ErrorResponse" 7228 tags: ["Swarm"] 7229 /swarm/unlock: 7230 post: 7231 summary: "Unlock a locked manager" 7232 operationId: "SwarmUnlock" 7233 consumes: 7234 - "application/json" 7235 produces: 7236 - "application/json" 7237 parameters: 7238 - name: "body" 7239 in: "body" 7240 required: true 7241 schema: 7242 type: "object" 7243 properties: 7244 UnlockKey: 7245 description: "The swarm's unlock key." 7246 type: "string" 7247 example: 7248 UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8" 7249 responses: 7250 200: 7251 description: "no error" 7252 500: 7253 description: "server error" 7254 schema: 7255 $ref: "#/definitions/ErrorResponse" 7256 503: 7257 description: "node is not part of a swarm" 7258 schema: 7259 $ref: "#/definitions/ErrorResponse" 7260 tags: ["Swarm"] 7261 /services: 7262 get: 7263 summary: "List services" 7264 operationId: "ServiceList" 7265 responses: 7266 200: 7267 description: "no error" 7268 schema: 7269 type: "array" 7270 items: 7271 $ref: "#/definitions/Service" 7272 500: 7273 description: "server error" 7274 schema: 7275 $ref: "#/definitions/ErrorResponse" 7276 503: 7277 description: "node is not part of a swarm" 7278 schema: 7279 $ref: "#/definitions/ErrorResponse" 7280 parameters: 7281 - name: "filters" 7282 in: "query" 7283 type: "string" 7284 description: | 7285 A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters: 7286 7287 - `id=<service id>` 7288 - `label=<service label>` 7289 - `name=<service name>` 7290 tags: ["Service"] 7291 /services/create: 7292 post: 7293 summary: "Create a service" 7294 operationId: "ServiceCreate" 7295 consumes: 7296 - "application/json" 7297 produces: 7298 - "application/json" 7299 responses: 7300 201: 7301 description: "no error" 7302 schema: 7303 type: "object" 7304 properties: 7305 ID: 7306 description: "The ID of the created service." 7307 type: "string" 7308 Warning: 7309 description: "Optional warning message" 7310 type: "string" 7311 example: 7312 ID: "ak7w3gjqoa3kuz8xcpnyy0pvl" 7313 Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" 7314 400: 7315 description: "bad parameter" 7316 schema: 7317 $ref: "#/definitions/ErrorResponse" 7318 403: 7319 description: "network is not eligible for services" 7320 schema: 7321 $ref: "#/definitions/ErrorResponse" 7322 409: 7323 description: "name conflicts with an existing service" 7324 schema: 7325 $ref: "#/definitions/ErrorResponse" 7326 500: 7327 description: "server error" 7328 schema: 7329 $ref: "#/definitions/ErrorResponse" 7330 503: 7331 description: "node is not part of a swarm" 7332 schema: 7333 $ref: "#/definitions/ErrorResponse" 7334 parameters: 7335 - name: "body" 7336 in: "body" 7337 required: true 7338 schema: 7339 allOf: 7340 - $ref: "#/definitions/ServiceSpec" 7341 - type: "object" 7342 example: 7343 Name: "web" 7344 TaskTemplate: 7345 ContainerSpec: 7346 Image: "nginx:alpine" 7347 Mounts: 7348 - 7349 ReadOnly: true 7350 Source: "web-data" 7351 Target: "/usr/share/nginx/html" 7352 Type: "volume" 7353 VolumeOptions: 7354 DriverConfig: {} 7355 Labels: 7356 com.example.something: "something-value" 7357 User: "33" 7358 DNSConfig: 7359 Nameservers: ["8.8.8.8"] 7360 Search: ["example.org"] 7361 Options: ["timeout:3"] 7362 LogDriver: 7363 Name: "json-file" 7364 Options: 7365 max-file: "3" 7366 max-size: "10M" 7367 Placement: {} 7368 Resources: 7369 Limits: 7370 MemoryBytes: 104857600 7371 Reservations: {} 7372 RestartPolicy: 7373 Condition: "on-failure" 7374 Delay: 10000000000 7375 MaxAttempts: 10 7376 Mode: 7377 Replicated: 7378 Replicas: 4 7379 UpdateConfig: 7380 Delay: 30000000000 7381 Parallelism: 2 7382 FailureAction: "pause" 7383 EndpointSpec: 7384 Ports: 7385 - 7386 Protocol: "tcp" 7387 PublishedPort: 8080 7388 TargetPort: 80 7389 Labels: 7390 foo: "bar" 7391 - name: "X-Registry-Auth" 7392 in: "header" 7393 description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)" 7394 type: "string" 7395 tags: ["Service"] 7396 /services/{id}: 7397 get: 7398 summary: "Inspect a service" 7399 operationId: "ServiceInspect" 7400 responses: 7401 200: 7402 description: "no error" 7403 schema: 7404 $ref: "#/definitions/Service" 7405 404: 7406 description: "no such service" 7407 schema: 7408 $ref: "#/definitions/ErrorResponse" 7409 500: 7410 description: "server error" 7411 schema: 7412 $ref: "#/definitions/ErrorResponse" 7413 503: 7414 description: "node is not part of a swarm" 7415 schema: 7416 $ref: "#/definitions/ErrorResponse" 7417 parameters: 7418 - name: "id" 7419 in: "path" 7420 description: "ID or name of service." 7421 required: true 7422 type: "string" 7423 tags: ["Service"] 7424 delete: 7425 summary: "Delete a service" 7426 operationId: "ServiceDelete" 7427 responses: 7428 200: 7429 description: "no error" 7430 404: 7431 description: "no such service" 7432 schema: 7433 $ref: "#/definitions/ErrorResponse" 7434 500: 7435 description: "server error" 7436 schema: 7437 $ref: "#/definitions/ErrorResponse" 7438 503: 7439 description: "node is not part of a swarm" 7440 schema: 7441 $ref: "#/definitions/ErrorResponse" 7442 parameters: 7443 - name: "id" 7444 in: "path" 7445 description: "ID or name of service." 7446 required: true 7447 type: "string" 7448 tags: ["Service"] 7449 /services/{id}/update: 7450 post: 7451 summary: "Update a service" 7452 operationId: "ServiceUpdate" 7453 consumes: ["application/json"] 7454 produces: ["application/json"] 7455 responses: 7456 200: 7457 description: "no error" 7458 schema: 7459 $ref: "#/definitions/ImageDeleteResponse" 7460 400: 7461 description: "bad parameter" 7462 schema: 7463 $ref: "#/definitions/ErrorResponse" 7464 404: 7465 description: "no such service" 7466 schema: 7467 $ref: "#/definitions/ErrorResponse" 7468 500: 7469 description: "server error" 7470 schema: 7471 $ref: "#/definitions/ErrorResponse" 7472 503: 7473 description: "node is not part of a swarm" 7474 schema: 7475 $ref: "#/definitions/ErrorResponse" 7476 parameters: 7477 - name: "id" 7478 in: "path" 7479 description: "ID or name of service." 7480 required: true 7481 type: "string" 7482 - name: "body" 7483 in: "body" 7484 required: true 7485 schema: 7486 allOf: 7487 - $ref: "#/definitions/ServiceSpec" 7488 - type: "object" 7489 example: 7490 Name: "top" 7491 TaskTemplate: 7492 ContainerSpec: 7493 Image: "busybox" 7494 Args: 7495 - "top" 7496 Resources: 7497 Limits: {} 7498 Reservations: {} 7499 RestartPolicy: 7500 Condition: "any" 7501 MaxAttempts: 0 7502 Placement: {} 7503 ForceUpdate: 0 7504 Mode: 7505 Replicated: 7506 Replicas: 1 7507 UpdateConfig: 7508 Parallelism: 1 7509 Monitor: 15000000000 7510 MaxFailureRatio: 0.15 7511 EndpointSpec: 7512 Mode: "vip" 7513 7514 - name: "version" 7515 in: "query" 7516 description: "The version number of the service object being updated. This is required to avoid conflicting writes." 7517 required: true 7518 type: "integer" 7519 - name: "registryAuthFrom" 7520 in: "query" 7521 type: "string" 7522 description: "If the X-Registry-Auth header is not specified, this 7523 parameter indicates where to find registry authorization credentials. The 7524 valid values are `spec` and `previous-spec`." 7525 default: "spec" 7526 - name: "X-Registry-Auth" 7527 in: "header" 7528 description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)" 7529 type: "string" 7530 7531 tags: ["Service"] 7532 /services/{id}/logs: 7533 get: 7534 summary: "Get service logs" 7535 description: | 7536 Get `stdout` and `stderr` logs from a service. 7537 7538 **Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers. 7539 operationId: "ServiceLogs" 7540 produces: 7541 - "application/vnd.docker.raw-stream" 7542 - "application/json" 7543 responses: 7544 101: 7545 description: "logs returned as a stream" 7546 schema: 7547 type: "string" 7548 format: "binary" 7549 200: 7550 description: "logs returned as a string in response body" 7551 schema: 7552 type: "string" 7553 404: 7554 description: "no such container" 7555 schema: 7556 $ref: "#/definitions/ErrorResponse" 7557 examples: 7558 application/json: 7559 message: "No such container: c2ada9df5af8" 7560 500: 7561 description: "server error" 7562 schema: 7563 $ref: "#/definitions/ErrorResponse" 7564 503: 7565 description: "node is not part of a swarm" 7566 schema: 7567 $ref: "#/definitions/ErrorResponse" 7568 parameters: 7569 - name: "id" 7570 in: "path" 7571 required: true 7572 description: "ID or name of the container" 7573 type: "string" 7574 - name: "details" 7575 in: "query" 7576 description: "Show extra details provided to logs." 7577 type: "boolean" 7578 default: false 7579 - name: "follow" 7580 in: "query" 7581 description: | 7582 Return the logs as a stream. 7583 7584 This will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach). 7585 type: "boolean" 7586 default: false 7587 - name: "stdout" 7588 in: "query" 7589 description: "Return logs from `stdout`" 7590 type: "boolean" 7591 default: false 7592 - name: "stderr" 7593 in: "query" 7594 description: "Return logs from `stderr`" 7595 type: "boolean" 7596 default: false 7597 - name: "since" 7598 in: "query" 7599 description: "Only return logs since this time, as a UNIX timestamp" 7600 type: "integer" 7601 default: 0 7602 - name: "timestamps" 7603 in: "query" 7604 description: "Add timestamps to every log line" 7605 type: "boolean" 7606 default: false 7607 - name: "tail" 7608 in: "query" 7609 description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines." 7610 type: "string" 7611 default: "all" 7612 tags: ["Service"] 7613 /tasks: 7614 get: 7615 summary: "List tasks" 7616 operationId: "TaskList" 7617 produces: 7618 - "application/json" 7619 responses: 7620 200: 7621 description: "no error" 7622 schema: 7623 type: "array" 7624 items: 7625 $ref: "#/definitions/Task" 7626 example: 7627 - ID: "0kzzo1i0y4jz6027t0k7aezc7" 7628 Version: 7629 Index: 71 7630 CreatedAt: "2016-06-07T21:07:31.171892745Z" 7631 UpdatedAt: "2016-06-07T21:07:31.376370513Z" 7632 Spec: 7633 ContainerSpec: 7634 Image: "redis" 7635 Resources: 7636 Limits: {} 7637 Reservations: {} 7638 RestartPolicy: 7639 Condition: "any" 7640 MaxAttempts: 0 7641 Placement: {} 7642 ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz" 7643 Slot: 1 7644 NodeID: "60gvrl6tm78dmak4yl7srz94v" 7645 Status: 7646 Timestamp: "2016-06-07T21:07:31.290032978Z" 7647 State: "running" 7648 Message: "started" 7649 ContainerStatus: 7650 ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035" 7651 PID: 677 7652 DesiredState: "running" 7653 NetworksAttachments: 7654 - Network: 7655 ID: "4qvuz4ko70xaltuqbt8956gd1" 7656 Version: 7657 Index: 18 7658 CreatedAt: "2016-06-07T20:31:11.912919752Z" 7659 UpdatedAt: "2016-06-07T21:07:29.955277358Z" 7660 Spec: 7661 Name: "ingress" 7662 Labels: 7663 com.docker.swarm.internal: "true" 7664 DriverConfiguration: {} 7665 IPAMOptions: 7666 Driver: {} 7667 Configs: 7668 - Subnet: "10.255.0.0/16" 7669 Gateway: "10.255.0.1" 7670 DriverState: 7671 Name: "overlay" 7672 Options: 7673 com.docker.network.driver.overlay.vxlanid_list: "256" 7674 IPAMOptions: 7675 Driver: 7676 Name: "default" 7677 Configs: 7678 - Subnet: "10.255.0.0/16" 7679 Gateway: "10.255.0.1" 7680 Addresses: 7681 - "10.255.0.10/16" 7682 - ID: "1yljwbmlr8er2waf8orvqpwms" 7683 Version: 7684 Index: 30 7685 CreatedAt: "2016-06-07T21:07:30.019104782Z" 7686 UpdatedAt: "2016-06-07T21:07:30.231958098Z" 7687 Name: "hopeful_cori" 7688 Spec: 7689 ContainerSpec: 7690 Image: "redis" 7691 Resources: 7692 Limits: {} 7693 Reservations: {} 7694 RestartPolicy: 7695 Condition: "any" 7696 MaxAttempts: 0 7697 Placement: {} 7698 ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz" 7699 Slot: 1 7700 NodeID: "60gvrl6tm78dmak4yl7srz94v" 7701 Status: 7702 Timestamp: "2016-06-07T21:07:30.202183143Z" 7703 State: "shutdown" 7704 Message: "shutdown" 7705 ContainerStatus: 7706 ContainerID: "1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213" 7707 DesiredState: "shutdown" 7708 NetworksAttachments: 7709 - Network: 7710 ID: "4qvuz4ko70xaltuqbt8956gd1" 7711 Version: 7712 Index: 18 7713 CreatedAt: "2016-06-07T20:31:11.912919752Z" 7714 UpdatedAt: "2016-06-07T21:07:29.955277358Z" 7715 Spec: 7716 Name: "ingress" 7717 Labels: 7718 com.docker.swarm.internal: "true" 7719 DriverConfiguration: {} 7720 IPAMOptions: 7721 Driver: {} 7722 Configs: 7723 - Subnet: "10.255.0.0/16" 7724 Gateway: "10.255.0.1" 7725 DriverState: 7726 Name: "overlay" 7727 Options: 7728 com.docker.network.driver.overlay.vxlanid_list: "256" 7729 IPAMOptions: 7730 Driver: 7731 Name: "default" 7732 Configs: 7733 - Subnet: "10.255.0.0/16" 7734 Gateway: "10.255.0.1" 7735 Addresses: 7736 - "10.255.0.5/16" 7737 500: 7738 description: "server error" 7739 schema: 7740 $ref: "#/definitions/ErrorResponse" 7741 503: 7742 description: "node is not part of a swarm" 7743 schema: 7744 $ref: "#/definitions/ErrorResponse" 7745 parameters: 7746 - name: "filters" 7747 in: "query" 7748 type: "string" 7749 description: | 7750 A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters: 7751 7752 - `desired-state=(running | shutdown | accepted)` 7753 - `id=<task id>` 7754 - `label=key` or `label="key=value"` 7755 - `name=<task name>` 7756 - `node=<node id or name>` 7757 - `service=<service name>` 7758 tags: ["Task"] 7759 /tasks/{id}: 7760 get: 7761 summary: "Inspect a task" 7762 operationId: "TaskInspect" 7763 produces: 7764 - "application/json" 7765 responses: 7766 200: 7767 description: "no error" 7768 schema: 7769 $ref: "#/definitions/Task" 7770 404: 7771 description: "no such task" 7772 schema: 7773 $ref: "#/definitions/ErrorResponse" 7774 500: 7775 description: "server error" 7776 schema: 7777 $ref: "#/definitions/ErrorResponse" 7778 503: 7779 description: "node is not part of a swarm" 7780 schema: 7781 $ref: "#/definitions/ErrorResponse" 7782 parameters: 7783 - name: "id" 7784 in: "path" 7785 description: "ID of the task" 7786 required: true 7787 type: "string" 7788 tags: ["Task"] 7789 /secrets: 7790 get: 7791 summary: "List secrets" 7792 operationId: "SecretList" 7793 produces: 7794 - "application/json" 7795 responses: 7796 200: 7797 description: "no error" 7798 schema: 7799 type: "array" 7800 items: 7801 $ref: "#/definitions/Secret" 7802 example: 7803 - ID: "ktnbjxoalbkvbvedmg1urrz8h" 7804 Version: 7805 Index: 11 7806 CreatedAt: "2016-11-05T01:20:17.327670065Z" 7807 UpdatedAt: "2016-11-05T01:20:17.327670065Z" 7808 Spec: 7809 Name: "app-dev.crt" 7810 500: 7811 description: "server error" 7812 schema: 7813 $ref: "#/definitions/ErrorResponse" 7814 503: 7815 description: "node is not part of a swarm" 7816 schema: 7817 $ref: "#/definitions/ErrorResponse" 7818 parameters: 7819 - name: "filters" 7820 in: "query" 7821 type: "string" 7822 description: | 7823 A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters: 7824 7825 - `names=<secret name>` 7826 tags: ["Secret"] 7827 /secrets/create: 7828 post: 7829 summary: "Create a secret" 7830 operationId: "SecretCreate" 7831 consumes: 7832 - "application/json" 7833 produces: 7834 - "application/json" 7835 responses: 7836 201: 7837 description: "no error" 7838 schema: 7839 type: "object" 7840 properties: 7841 ID: 7842 description: "The ID of the created secret." 7843 type: "string" 7844 example: 7845 ID: "ktnbjxoalbkvbvedmg1urrz8h" 7846 409: 7847 description: "name conflicts with an existing object" 7848 schema: 7849 $ref: "#/definitions/ErrorResponse" 7850 500: 7851 description: "server error" 7852 schema: 7853 $ref: "#/definitions/ErrorResponse" 7854 503: 7855 description: "node is not part of a swarm" 7856 schema: 7857 $ref: "#/definitions/ErrorResponse" 7858 parameters: 7859 - name: "body" 7860 in: "body" 7861 schema: 7862 allOf: 7863 - $ref: "#/definitions/SecretSpec" 7864 - type: "object" 7865 example: 7866 Name: "app-key.crt" 7867 Labels: 7868 foo: "bar" 7869 Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==" 7870 tags: ["Secret"] 7871 /secrets/{id}: 7872 get: 7873 summary: "Inspect a secret" 7874 operationId: "SecretInspect" 7875 produces: 7876 - "application/json" 7877 responses: 7878 200: 7879 description: "no error" 7880 schema: 7881 $ref: "#/definitions/Secret" 7882 example: 7883 ID: "ktnbjxoalbkvbvedmg1urrz8h" 7884 Version: 7885 Index: 11 7886 CreatedAt: "2016-11-05T01:20:17.327670065Z" 7887 UpdatedAt: "2016-11-05T01:20:17.327670065Z" 7888 Spec: 7889 Name: "app-dev.crt" 7890 404: 7891 description: "secret not found" 7892 schema: 7893 $ref: "#/definitions/ErrorResponse" 7894 500: 7895 description: "server error" 7896 schema: 7897 $ref: "#/definitions/ErrorResponse" 7898 503: 7899 description: "node is not part of a swarm" 7900 schema: 7901 $ref: "#/definitions/ErrorResponse" 7902 parameters: 7903 - name: "id" 7904 in: "path" 7905 required: true 7906 type: "string" 7907 description: "ID of the secret" 7908 tags: ["Secret"] 7909 delete: 7910 summary: "Delete a secret" 7911 operationId: "SecretDelete" 7912 produces: 7913 - "application/json" 7914 responses: 7915 204: 7916 description: "no error" 7917 404: 7918 description: "secret not found" 7919 schema: 7920 $ref: "#/definitions/ErrorResponse" 7921 500: 7922 description: "server error" 7923 schema: 7924 $ref: "#/definitions/ErrorResponse" 7925 503: 7926 description: "node is not part of a swarm" 7927 schema: 7928 $ref: "#/definitions/ErrorResponse" 7929 parameters: 7930 - name: "id" 7931 in: "path" 7932 required: true 7933 type: "string" 7934 description: "ID of the secret" 7935 tags: ["Secret"] 7936 /secrets/{id}/update: 7937 post: 7938 summary: "Update a Secret" 7939 operationId: "SecretUpdate" 7940 responses: 7941 200: 7942 description: "no error" 7943 404: 7944 description: "no such secret" 7945 schema: 7946 $ref: "#/definitions/ErrorResponse" 7947 500: 7948 description: "server error" 7949 schema: 7950 $ref: "#/definitions/ErrorResponse" 7951 503: 7952 description: "node is not part of a swarm" 7953 schema: 7954 $ref: "#/definitions/ErrorResponse" 7955 parameters: 7956 - name: "id" 7957 in: "path" 7958 description: "The ID of the secret" 7959 type: "string" 7960 required: true 7961 - name: "body" 7962 in: "body" 7963 schema: 7964 $ref: "#/definitions/SecretSpec" 7965 description: "The spec of the secret to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [SecretInspect endpoint](#operation/SecretInspect) response values." 7966 - name: "version" 7967 in: "query" 7968 description: "The version number of the secret object being updated. This is required to avoid conflicting writes." 7969 type: "integer" 7970 format: "int64" 7971 required: true 7972 tags: ["Secret"]