UNPKG

34.8 kBTypeScriptView Raw
1// Type definitions for dockerode 2.5
2// Project: https://github.com/apocas/dockerode
3// Definitions by: Carl Winkler <https://github.com/seikho>
4// Nicolas Laplante <https://github.com/nlaplante>
5// ByeongHun Yoo <https://github.com/isac322>
6// Ray Fang <https://github.com/lazarusx>
7// Marius Meisenzahl <https://github.com/meisenzahl>
8// Rob Moran <https://github.com/thegecko>
9// Cameron Diver <https://github.com/CameronDiver>
10// Pascal Sthamer <https://github.com/p4sca1>
11// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
12// TypeScript Version: 2.2
13
14/// <reference types="node" />
15
16import * as stream from 'stream';
17import * as events from 'events';
18
19// The modem parameter is an instance of docker-modem, which is missing type declarations.
20// https://github.com/apocas/docker-modem
21
22declare namespace Dockerode {
23 class Container {
24 constructor(modem: any, id: string);
25
26 modem: any;
27 id: string;
28
29 inspect(options: {}, callback: Callback<ContainerInspectInfo>): void;
30 inspect(callback: Callback<ContainerInspectInfo>): void;
31 inspect(options?: {}): Promise<ContainerInspectInfo>;
32
33 rename(options: {}, callback: Callback<any>): void;
34 rename(options: {}): Promise<any>;
35
36 update(options: {}, callback: Callback<any>): void;
37 update(options: {}): Promise<any>;
38
39 top(options: {}, callback: Callback<any>): void;
40 top(callback: Callback<any>): void;
41 top(options?: {}): Promise<any>;
42
43 changes(callback: Callback<any>): void;
44 changes(): Promise<any>;
45
46 export(callback: Callback<NodeJS.ReadableStream>): void;
47 export(): Promise<NodeJS.ReadableStream>;
48
49 start(options: {}, callback: Callback<any>): void;
50 start(callback: Callback<any>): void;
51 start(options?: {}): Promise<any>;
52
53 pause(options: {}, callback: Callback<any>): void;
54 pause(callback: Callback<any>): void;
55 pause(options?: {}): Promise<any>;
56
57 unpause(options: {}, callback: Callback<any>): void;
58 unpause(callback: Callback<any>): void;
59 unpause(options?: {}): Promise<any>;
60
61 exec(options: {}, callback: Callback<any>): void;
62 exec(options: {}): Promise<any>;
63
64 commit(options: {}, callback: Callback<any>): void;
65 commit(callback: Callback<any>): void;
66 commit(options?: {}): Promise<any>;
67
68 stop(options: {}, callback: Callback<any>): void;
69 stop(callback: Callback<any>): void;
70 stop(options?: {}): Promise<any>;
71
72 restart(options: {}, callback: Callback<any>): void;
73 restart(callback: Callback<any>): void;
74 restart(options?: {}): Promise<any>;
75
76 kill(options: {}, callback: Callback<any>): void;
77 kill(callback: Callback<any>): void;
78 kill(options?: {}): Promise<any>;
79
80 resize(options: {}, callback: Callback<any>): void;
81 resize(callback: Callback<any>): void;
82 resize(options?: {}): Promise<any>;
83
84 wait(callback: Callback<any>): void;
85 wait(): Promise<any>;
86
87 remove(options: {}, callback: Callback<any>): void;
88 remove(callback: Callback<any>): void;
89 remove(options?: {}): Promise<any>;
90
91 /** Deprecated since RAPI v1.20 */
92 copy(options: {}, callback: Callback<any>): void;
93 /** Deprecated since RAPI v1.20 */
94 copy(callback: Callback<any>): void;
95 /** Deprecated since RAPI v1.20 */
96 copy(options?: {}): Promise<any>;
97
98 getArchive(options: {}, callback: Callback<NodeJS.ReadableStream>): void;
99 getArchive(options: {}): Promise<NodeJS.ReadableStream>;
100
101 infoArchive(options: {}, callback: Callback<any>): void;
102 infoArchive(options: {}): Promise<any>;
103
104 /** @param file Filename (will read synchronously), Buffer or stream */
105 putArchive(file: string | Buffer | NodeJS.ReadableStream, options: {}, callback: Callback<NodeJS.WritableStream>): void;
106 putArchive(file: string | Buffer | NodeJS.ReadableStream, options: {}): Promise<NodeJS.ReadWriteStream>;
107
108 logs(options: ContainerLogsOptions, callback: Callback<NodeJS.ReadableStream>): void;
109 logs(callback: Callback<NodeJS.ReadableStream>): void;
110 logs(options?: ContainerLogsOptions): Promise<NodeJS.ReadableStream>;
111
112 stats(options: {}, callback: Callback<ContainerStats>): void;
113 stats(callback: Callback<ContainerStats>): void;
114 stats(options?: {}): Promise<ContainerStats>;
115
116 attach(options: {}, callback: Callback<NodeJS.ReadWriteStream>): void;
117 attach(options: {}): Promise<NodeJS.ReadWriteStream>;
118 }
119
120 class Image {
121 constructor(modem: any, name: string);
122
123 modem: any;
124 id: string;
125
126 inspect(callback: Callback<ImageInspectInfo>): void;
127 inspect(): Promise<ImageInspectInfo>;
128
129 history(callback: Callback<any>): void;
130 history(): Promise<any>;
131
132 get(callback: Callback<NodeJS.ReadableStream>): void;
133 get(): Promise<NodeJS.ReadableStream>;
134
135 push(options: {}, callback: Callback<NodeJS.ReadableStream>): void;
136 push(callback: Callback<NodeJS.ReadableStream>): void;
137 push(options?: {}): Promise<NodeJS.ReadableStream>;
138
139 tag(options: {}, callback: Callback<any>): void;
140 tag(callback: Callback<any>): void;
141 tag(options?: {}): Promise<any>;
142
143 remove(options: {}, callback: Callback<ImageRemoveInfo>): void;
144 remove(callback: Callback<ImageRemoveInfo>): void;
145 remove(options?: {}): Promise<any>;
146 }
147
148 class Volume {
149 constructor(modem: any, name: string);
150
151 modem: any;
152 name: string;
153
154 inspect(callback: Callback<VolumeInspectInfo>): void;
155 inspect(): Promise<VolumeInspectInfo>;
156
157 remove(options: {}, callback: Callback<any>): void;
158 remove(callback: Callback<any>): void;
159 remove(options?: {}): Promise<any>;
160 }
161
162 class Service {
163 constructor(modem: any, id: string);
164
165 modem: any;
166 id: string;
167
168 inspect(callback: Callback<any>): void;
169 inspect(): Promise<any>;
170
171 remove(options: {}, callback: Callback<any>): void;
172 remove(callback: Callback<any>): void;
173 remove(options?: {}): Promise<any>;
174
175 update(options: {}, callback: Callback<any>): void;
176 update(options: {}): Promise<any>;
177
178 logs(options: ContainerLogsOptions, callback: Callback<NodeJS.ReadableStream>): void;
179 logs(callback: Callback<NodeJS.ReadableStream>): void;
180 logs(options?: ContainerLogsOptions): Promise<NodeJS.ReadableStream>;
181 }
182
183 class Task {
184 constructor(modem: any, id: string);
185
186 modem: any;
187 id: string;
188
189 inspect(callback: Callback<any>): void;
190 inspect(): Promise<any>;
191 }
192
193 class Node {
194 constructor(modem: any, id: string);
195
196 modem: any;
197 id: string;
198
199 inspect(callback: Callback<any>): void;
200 inspect(): Promise<any>;
201
202 update(options: {}, callback: Callback<any>): void;
203 update(callback: Callback<any>): void;
204 update(options?: {}): Promise<any>;
205
206 remove(options: {}, callback: Callback<any>): void;
207 remove(callback: Callback<any>): void;
208 remove(options?: {}): Promise<any>;
209 }
210
211 class Plugin {
212 constructor(modem: any, name: string, remote?: any);
213
214 modem: any;
215 name: string;
216 remote: any;
217
218 inspect(callback: Callback<PluginInspectInfo>): void;
219 inspect(): Promise<PluginInspectInfo>;
220
221 remove(options: {}, callback: Callback<any>): void;
222 remove(callback: Callback<any>): void;
223 remove(options?: {}): Promise<any>;
224
225 privileges(callback: Callback<any>): void;
226 privileges(): Promise<any>;
227
228 pull(options: {}, callback: Callback<any>): void;
229 pull(options: {}): Promise<any>;
230
231 enable(options: {}, callback: Callback<any>): void;
232 enable(callback: Callback<any>): void;
233 enable(options?: {}): Promise<any>;
234
235 disable(options: {}, callback: Callback<any>): void;
236 disable(callback: Callback<any>): void;
237 disable(options?: {}): Promise<any>;
238
239 push(options: {}, callback: Callback<any>): void;
240 push(callback: Callback<any>): void;
241 push(options?: {}): Promise<any>;
242
243 configure(options: {}, callback: Callback<any>): void;
244 configure(callback: Callback<any>): void;
245 configure(options?: {}): Promise<any>;
246
247 upgrade(auth: any, options: {}, callback: Callback<any>): void;
248 upgrade(auth: any, callback: Callback<any>): void;
249 upgrade(auth: any, options?: {}): Promise<any>;
250 }
251
252 class Secret {
253 constructor(modem: any, id: string);
254
255 modem: any;
256 id: string;
257
258 inspect(callback: Callback<SecretInfo>): void;
259 inspect(): Promise<SecretInfo>;
260
261 update(options: {}, callback: Callback<any>): void;
262 update(callback: Callback<any>): void;
263 update(options?: {}): Promise<any>;
264
265 remove(options: {}, callback: Callback<any>): void;
266 remove(callback: Callback<any>): void;
267 remove(options?: {}): Promise<any>;
268 }
269
270 class Network {
271 constructor(modem: any, id: string);
272
273 modem: any;
274 id: string;
275
276 inspect(callback: Callback<any>): void;
277 inspect(): Promise<any>;
278
279 remove(options: {}, callback: Callback<any>): void;
280 remove(callback: Callback<any>): void;
281 remove(options?: {}): Promise<any>;
282
283 connect(options: {}, callback: Callback<any>): void;
284 connect(callback: Callback<any>): void;
285 connect(options?: {}): Promise<any>;
286
287 disconnect(options: {}, callback: Callback<any>): void;
288 disconnect(callback: Callback<any>): void;
289 disconnect(options?: {}): Promise<any>;
290 }
291
292 class Exec {
293 constructor(modem: any, id: string);
294
295 modem: any;
296 id: string;
297
298 inspect(callback: Callback<any>): void;
299 inspect(): Promise<any>;
300
301 start(options: {}, callback: Callback<any>): void;
302 start(options: {}): Promise<any>;
303
304 resize(options: {}, callback: Callback<any>): void;
305 resize(options: {}): Promise<any>;
306 }
307
308 class Config {
309 constructor(modem: any, id: string);
310
311 modem: any;
312 id: string;
313
314 inspect(callback: Callback<ConfigInfo>): void;
315 inspect(): Promise<ConfigInfo>;
316
317 update(options: {}, callback: Callback<any>): void;
318 update(callback: Callback<any>): void;
319 update(options?: {}): Promise<any>;
320
321 remove(options: {}, callback: Callback<any>): void;
322 remove(callback: Callback<any>): void;
323 remove(options?: {}): Promise<any>;
324 }
325
326 interface ImageInfo {
327 Id: string;
328 ParentId: string;
329 RepoTags: string[];
330 RepoDigests?: string[];
331 Created: number;
332 Size: number;
333 VirtualSize: number;
334 Labels: { [label: string]: string };
335 }
336
337 interface ContainerInfo {
338 Id: string;
339 Names: string[];
340 Image: string;
341 ImageID: string;
342 Command: string;
343 Created: number;
344 Ports: Port[];
345 Labels: { [label: string]: string };
346 State: string;
347 Status: string;
348 HostConfig: {
349 NetworkMode: string;
350 };
351 NetworkSettings: {
352 Networks: { [networkType: string]: NetworkInfo }
353 };
354 }
355
356 interface Port {
357 IP: string;
358 PrivatePort: number;
359 PublicPort: number;
360 Type: string;
361 }
362
363 interface NetworkInfo {
364 IPAMConfig?: any;
365 Links?: any;
366 Aliases?: any;
367 NetworkID: string;
368 EndpointID: string;
369 Gateway: string;
370 IPAddress: string;
371 IPPrefixLen: number;
372 IPv6Gateway: string;
373 GlobalIPv6Address: string;
374 GlobalIPv6PrefixLen: number;
375 MacAddress: string;
376 }
377
378 // Information returned from inspecting a network
379 interface NetworkInspectInfo {
380 Name: string;
381 Id: string;
382 Created: string;
383 Scope: string;
384 Driver: string;
385 EnableIPv6: boolean;
386 IPAM?: IPAM;
387 Internal: boolean;
388 Attachable: boolean;
389 Ingress: boolean;
390 Containers?: { [id: string]: NetworkContainer };
391 Options?: { [key: string]: string };
392 Labels?: { [key: string]: string };
393 }
394
395 interface NetworkContainer {
396 Name: string;
397 EndpointID: string;
398 MacAddress: string;
399 Ipv4Address: string;
400 IPv6Address: string;
401 }
402
403 /* tslint:disable:interface-name */
404 interface IPAM {
405 Driver: string;
406 Config?: { [key: string]: string };
407 Options?: Array<{ [key: string]: string }>;
408 }
409 /* tslint:enable:interface-name */
410
411 interface VolumeInspectInfo {
412 Name: string;
413 Driver: string;
414 Mountpoint: string;
415 Status?: { [key: string]: string };
416 Labels: { [key: string]: string };
417 Scope: 'local' | 'global';
418 // Field is always present, but sometimes is null
419 Options: { [key: string]: string } | null;
420 // Field is sometimes present, and sometimes null
421 UsageData?: {
422 Size: number;
423 RefCount: number;
424 } | null;
425 }
426
427 interface ContainerInspectInfo {
428 Id: string;
429 Created: string;
430 Path: string;
431 Args: string[];
432 State: {
433 Status: string;
434 Running: boolean;
435 Paused: boolean;
436 Restarting: boolean;
437 OOMKilled: boolean;
438 Dead: boolean;
439 Pid: number;
440 ExitCode: number;
441 Error: string;
442 StartedAt: string;
443 FinishedAt: string;
444 };
445 Image: string;
446 ResolvConfPath: string;
447 HostnamePath: string;
448 HostsPath: string;
449 LogPath: string;
450 Name: string;
451 RestartCount: number;
452 Driver: string;
453 MountLabel: string;
454 ProcessLabel: string;
455 AppArmorProfile: string;
456 ExecIDs?: any;
457 HostConfig: HostConfig;
458 GraphDriver: {
459 Name: string;
460 Data: {
461 DeviceId: string;
462 DeviceName: string;
463 DeviceSize: string;
464 }
465 };
466 Mounts: Array<{
467 Source: string;
468 Destination: string;
469 Mode: string;
470 RW: boolean;
471 Propagation: string;
472 }>;
473 Config: {
474 Hostname: string;
475 Domainname: string;
476 User: string;
477 AttachStdin: boolean;
478 AttachStdout: boolean;
479 AttachStderr: boolean;
480 ExposedPorts: { [portAndProtocol: string]: {} };
481 Tty: boolean;
482 OpenStdin: boolean;
483 StdinOnce: boolean;
484 Env: string[];
485 Cmd: string[];
486 Image: string;
487 Volumes: { [volume: string]: {} };
488 WorkingDir: string;
489 Entrypoint?: string | string[];
490 OnBuild?: any;
491 Labels: { [label: string]: string }
492 };
493 NetworkSettings: {
494 Bridge: string;
495 SandboxID: string;
496 HairpinMode: boolean;
497 LinkLocalIPv6Address: string;
498 LinkLocalIPv6PrefixLen: number;
499 Ports: {
500 [portAndProtocol: string]: Array<{
501 HostIp: string;
502 HostPort: string;
503 }>;
504 };
505 SandboxKey: string;
506 SecondaryIPAddresses?: any;
507 SecondaryIPv6Addresses?: any;
508 EndpointID: string;
509 Gateway: string;
510 GlobalIPv6Address: string;
511 GlobalIPv6PrefixLen: number;
512 IPAddress: string;
513 IPPrefixLen: number;
514 IPv6Gateway: string;
515 MacAddress: string;
516 Networks: {
517 [type: string]: {
518 IPAMConfig?: any;
519 Links?: any;
520 Aliases?: any;
521 NetworkID: string;
522 EndpointID: string;
523 Gateway: string;
524 IPAddress: string;
525 IPPrefixLen: number;
526 IPv6Gateway: string;
527 GlobalIPv6Address: string;
528 GlobalIPv6PrefixLen: number;
529 MacAddress: string;
530 };
531 };
532 Node?: {
533 ID: string;
534 IP: string;
535 Addr: string;
536 Name: string;
537 Cpus: number;
538 Memory: number;
539 Labels: any;
540 };
541 };
542 }
543
544 interface NetworkStats {
545 [name: string]: {
546 rx_bytes: number;
547 rx_dropped: number;
548 rx_errors: number;
549 rx_packets: number;
550 tx_bytes: number;
551 tx_dropped: number;
552 tx_errors: number;
553 tx_packets: number;
554 };
555 }
556
557 interface CPUStats {
558 cpu_usage: {
559 percpu_usage: number[];
560 usage_in_usermode: number;
561 total_usage: number;
562 usage_in_kernelmode: number;
563 };
564 system_cpu_usage: number;
565 online_cpus: number;
566 throttling_data: {
567 periods: number;
568 throttled_periods: number;
569 throttled_time: number;
570 };
571 }
572
573 interface MemoryStats {
574 stats: {
575 total_pgmajfault: number;
576 cache: number;
577 mapped_file: number;
578 total_inactive_file: number;
579 pgpgout: number;
580 rss: number;
581 total_mapped_file: number;
582 writeback: number;
583 unevictable: number;
584 pgpgin: number;
585 total_unevictable: number;
586 pgmajfault: number;
587 total_rss: number;
588 total_rss_huge: number;
589 total_writeback: number;
590 total_inactive_anon: number;
591 rss_huge: number;
592 hierarchical_memory_limit: number;
593 total_pgfault: number;
594 total_active_file: number;
595 active_anon: number;
596 total_active_anon: number;
597 total_pgpgout: number;
598 total_cache: number;
599 inactive_anon: number;
600 active_file: number;
601 pgfault: number;
602 inactive_file: number;
603 total_pgpgin: number;
604 };
605 max_usage: number;
606 usage: number;
607 failcnt: number;
608 limit: number;
609 }
610
611 interface ContainerStats {
612 read: string;
613 pid_stats: {
614 current: number;
615 };
616 networks: NetworkStats;
617 memory_stats: MemoryStats;
618 blkio_stats: {};
619 cpu_stats: CPUStats;
620 precpu_stats: CPUStats;
621 }
622
623 interface HostConfig {
624 AutoRemove?: boolean;
625 Binds?: string[];
626 ContainerIDFile?: string;
627 LogConfig?: {
628 Type: string;
629 Config: any;
630 };
631 NetworkMode?: string;
632 PortBindings?: any;
633 RestartPolicy?: RestartPolicy;
634 VolumeDriver?: string;
635 VolumesFrom?: any;
636 Mounts?: MountConfig;
637 CapAdd?: any;
638 CapDrop?: any;
639 Dns?: any[];
640 DnsOptions?: any[];
641 DnsSearch?: any[];
642 ExtraHosts?: any;
643 GroupAdd?: string[];
644 IpcMode?: string;
645 Cgroup?: string;
646 Links?: any;
647 OomScoreAdj?: number;
648 PidMode?: string;
649 Privileged?: boolean;
650 PublishAllPorts?: boolean;
651 ReadonlyRootfs?: boolean;
652 SecurityOpt?: any;
653 StorageOpt?: { [option: string]: string };
654 Tmpfs?: { [dir: string]: string };
655 UTSMode?: string;
656 UsernsMode?: string;
657 ShmSize?: number;
658 Sysctls?: { [index: string]: string };
659 Runtime?: string;
660 ConsoleSize?: number[];
661 Isolation?: string;
662 MaskedPaths?: string[];
663 ReadonlyPaths?: string[];
664 CpuShares?: number;
665 CgroupParent?: string;
666 BlkioWeight?: number;
667 BlkioWeightDevice?: any;
668 BlkioDeviceReadBps?: any;
669 BlkioDeviceWriteBps?: any;
670 BlkioDeviceReadIOps?: any;
671 BlkioDeviceWriteIOps?: any;
672 CpuPeriod?: number;
673 CpuQuota?: number;
674 CpusetCpus?: string;
675 CpusetMems?: string;
676 Devices?: any;
677 DiskQuota?: number;
678 KernelMemory?: number;
679 Memory?: number;
680 MemoryReservation?: number;
681 MemorySwap?: number;
682 MemorySwappiness?: number;
683 OomKillDisable?: boolean;
684 PidsLimit?: number;
685 Ulimits?: any;
686 }
687
688 interface ImageInspectInfo {
689 Id: string;
690 RepoTags: string[];
691 RepoDigests: string[];
692 Parent: string;
693 Comment: string;
694 Created: string;
695 Container: string;
696 ContainerConfig:
697 {
698 Hostname: string;
699 Domainname: string;
700 User: string;
701 AttachStdin: boolean;
702 AttachStdout: boolean;
703 AttachStderr: boolean;
704 ExposedPorts: { [portAndProtocol: string]: {} };
705 Tty: boolean;
706 OpenStdin: boolean;
707 StdinOnce: boolean;
708 Env: string[];
709 Cmd: string[];
710 ArgsEscaped: boolean;
711 Image: string;
712 Volumes: { [path: string]: {} },
713 WorkingDir: string;
714 Entrypoint?: string | string[];
715 OnBuild?: any[];
716 Labels: { [label: string]: string }
717 };
718 DockerVersion: string;
719 Author: string;
720 Config:
721 {
722 Hostname: string;
723 Domainname: string;
724 User: string;
725 AttachStdin: boolean;
726 AttachStdout: boolean;
727 AttachStderr: boolean;
728 ExposedPorts: { [portAndProtocol: string]: {} }
729 Tty: boolean;
730 OpenStdin: boolean;
731 StdinOnce: boolean;
732 Env: string[];
733 Cmd: string[];
734 ArgsEscaped: boolean;
735 Image: string;
736 Volumes: { [path: string]: {} },
737 WorkingDir: string;
738 Entrypoint?: string | string[];
739 OnBuild: any[];
740 Labels: { [label: string]: string }
741 };
742 Architecture: string;
743 Os: string;
744 Size: number;
745 VirtualSize: number;
746 GraphDriver:
747 {
748 Name: string;
749 Data:
750 {
751 DeviceId: string;
752 DeviceName: string;
753 DeviceSize: string;
754 }
755 };
756 }
757
758 interface AuthConfig {
759 username: string;
760 password: string;
761 serveraddress: string;
762 email?: string;
763 }
764
765 interface PortBinding {
766 HostIp?: string;
767 HostPort?: string;
768 }
769
770 interface PortMap {
771 [key: string]: PortBinding[];
772 }
773
774 interface RestartPolicy {
775 Name: string;
776 MaximumRetryCount?: number;
777 }
778
779 type LoggingDriverType =
780 | "json-file"
781 | "syslog"
782 | "journald"
783 | "gelf"
784 | "fluentd"
785 | "awslogs"
786 | "splunk"
787 | "etwlogs"
788 | "none";
789
790 interface LogConfig {
791 Type: LoggingDriverType;
792 Config?: { [key: string]: string };
793 }
794
795 interface DeviceMapping {
796 PathOnHost: string;
797 PathInContainer: string;
798 CgroupPermissions: string;
799 }
800
801 /* tslint:disable:interface-name */
802 interface IPAMConfig {
803 IPv4Address?: string;
804 IPv6Address?: string;
805 LinkLocalIPs?: string[];
806 }
807 /* tslint:enable:interface-name */
808
809 interface EndpointSettings {
810 IPAMConfig?: IPAMConfig;
811 Links?: string[];
812 Aliases?: string[];
813 NetworkID?: string;
814 EndpointID?: string;
815 Gateway?: string;
816 IPAddress?: string;
817 IPPrefixLen?: number;
818 IPv6Gateway?: string;
819 GlobalIPv6Address?: string;
820 GlobalIPV6PrefixLen?: number;
821 MacAddress?: string;
822 DriverOpts?: { [key: string]: string };
823 }
824
825 interface EndpointsConfig {
826 [key: string]: EndpointSettings;
827 }
828
829 type MountType =
830 | "bind"
831 | "volume"
832 | "tmpfs";
833
834 type MountConsistency =
835 | "default"
836 | "consistent"
837 | "cached"
838 | "delegated";
839
840 type MountPropagation =
841 | "private"
842 | "rprivate"
843 | "shared"
844 | "rshared"
845 | "slave"
846 | "rslave";
847
848 interface MountSettings {
849 Target: string;
850 Source: string;
851 Type: MountType;
852 ReadOnly ?: boolean;
853 Consistency ?: MountConsistency;
854 BindOptions ?: {
855 Propagation: MountPropagation;
856 };
857 VolumeOptions ?: {
858 NoCopy: boolean;
859 Labels: { [label: string]: string };
860 DriverConfig: {
861 Name: string;
862 Options: { [option: string]: string};
863 };
864 };
865 TmpfsOptions ?: {
866 SizeBytes: number;
867 Mode: number;
868 };
869 }
870
871 type MountConfig = MountSettings[];
872
873 interface ContainerCreateOptions {
874 name?: string;
875 Hostname?: string;
876 Domainname?: string;
877 User?: string;
878 AttachStdin?: boolean;
879 AttachStdout?: boolean;
880 AttachStderr?: boolean;
881 Tty?: boolean;
882 OpenStdin?: boolean;
883 StdinOnce?: boolean;
884 Env?: string[];
885 Cmd?: string[];
886 Entrypoint?: string | string[];
887 Image?: string;
888 Labels?: { [label: string]: string };
889 Volumes?: { [volume: string]: {} };
890 WorkingDir?: string;
891 NetworkDisabled?: boolean;
892 MacAddress?: boolean;
893 ExposedPorts?: { [port: string]: {} };
894 StopSignal?: string;
895 HostConfig?: HostConfig;
896 NetworkingConfig?: {
897 EndpointsConfig?: EndpointsConfig;
898 };
899 }
900
901 interface KeyObject {
902 pem: string | Buffer;
903 passphrase?: string;
904 }
905
906 interface DockerOptions {
907 socketPath?: string;
908 host?: string;
909 port?: number | string;
910 ca?: string | string[] | Buffer | Buffer[];
911 cert?: string | string[] | Buffer | Buffer[];
912 key?: string | string[] | Buffer | Buffer[] | KeyObject[];
913 protocol?: "https" | "http";
914 timeout?: number;
915 version?: string;
916 Promise?: typeof Promise;
917 }
918
919 interface SecretVersion {
920 Index: number;
921 }
922
923 interface ServiceSpec {
924 Name: string;
925 }
926
927 interface SecretInfo {
928 ID: string;
929 Version: SecretVersion;
930 CreatedAt: string;
931 UpdatedAt?: string;
932 Spec?: ServiceSpec;
933 }
934
935 interface ConfigInfo {
936 ID: string;
937 Version: SecretVersion;
938 CreatedAt: string;
939 UpdatedAt?: string;
940 Spec?: ConfigSpec;
941 }
942
943 interface ConfigSpec {
944 Name: string;
945 Labels: { [label: string]: string };
946 Data: string;
947 }
948
949 interface ConfigVersion {
950 Index: number;
951 }
952
953 interface PluginInfo {
954 Id?: string;
955 Name: string;
956 Enabled: boolean;
957 Settings: PluginSettings;
958 PluginReference?: string;
959 Config: PluginConfig;
960 }
961
962 type PluginInspectInfo = PluginInfo;
963
964 interface PluginSettings {
965 Mounts: PluginMount[];
966 Env: string[];
967 Args: string[];
968 Devices: PluginDevice[];
969 }
970
971 interface PluginConfig {
972 Description: string;
973 Documentation: string;
974 Interface: any;
975 Entrypoint: string[];
976 WorkDir: string;
977 User?: User;
978 Network: Network;
979 Linux: Linux;
980 PropagatedMount: string;
981 Mounts: PluginMount[];
982 Env: PluginEnv[];
983 Args: Args;
984 rootfs: any;
985 }
986
987 interface Interface {
988 Types: PluginInterfaceType[];
989 Socket: string;
990 }
991
992 interface PluginInterfaceType {
993 Prefix: string;
994 Capability: string;
995 Version: string;
996 }
997
998 interface PluginMount {
999 Name: string;
1000 Description: string;
1001 Settable: string[];
1002 Source: string;
1003 Destination: string;
1004 Type: string;
1005 Options: string[];
1006 }
1007
1008 interface Linux {
1009 Capabilities: string[];
1010 AllowAllDevices: boolean;
1011 Devices: PluginDevice[];
1012 }
1013
1014 interface PluginDevice {
1015 Name: string;
1016 Description: string;
1017 Settable: string[];
1018 Path: string;
1019 }
1020
1021 interface Network {
1022 Type: string;
1023 }
1024
1025 interface PluginEnv {
1026 Name: string;
1027 Description: string;
1028 Settable: string[];
1029 Value: string;
1030 }
1031
1032 interface Args {
1033 Name: string;
1034 Description: string;
1035 Settable: string[];
1036 Value: string;
1037 }
1038
1039 interface User {
1040 UID: number;
1041 GID: number;
1042 }
1043
1044 interface ImageRemoveInfo {
1045 Untagged: string;
1046 Deleted: string;
1047 }
1048
1049 interface PruneImagesInfo {
1050 ImagesDeleted: ImageRemoveInfo[];
1051 SpaceReclaimed: number;
1052 }
1053
1054 interface PruneVolumesInfo {
1055 VolumesDeleted: string[];
1056 SpaceReclaimed: number;
1057 }
1058
1059 interface PruneContainersInfo {
1060 ContainersDeleted: string[];
1061 SpaceReclaimed: number;
1062 }
1063
1064 interface PruneNetworksInfo {
1065 NetworksDeleted: string[];
1066 }
1067
1068 interface ContainerLogsOptions {
1069 stdout?: boolean;
1070 stderr?: boolean;
1071 follow?: boolean;
1072 since?: number;
1073 details?: boolean;
1074 tail?: number;
1075 timestamps?: boolean;
1076 }
1077
1078 interface ImageBuildContext {
1079 context: string;
1080 src: string[];
1081 }
1082
1083 interface DockerVersion {
1084 ApiVersion: string;
1085 Arch: string;
1086 BuildTime: Date;
1087 Components: Array<{
1088 Details: {
1089 ApiVersion: string;
1090 Arch: string;
1091 BuildTime: Date;
1092 Experimental: string;
1093 GitCommit: string;
1094 GoVersion: string;
1095 KernelVersion: string;
1096 Os: string;
1097 };
1098 Name: string;
1099 Version: string;
1100 }>;
1101 GitCommit: string;
1102 GoVersion: string;
1103 KernelVersion: string;
1104 MinAPIVersion: string;
1105 Os: string;
1106 Platform: {
1107 Name: string;
1108 };
1109 Version: string;
1110 }
1111}
1112
1113type Callback<T> = (error?: any, result?: T) => void;
1114
1115declare class Dockerode {
1116 constructor(options?: Dockerode.DockerOptions);
1117
1118 createContainer(options: Dockerode.ContainerCreateOptions, callback: Callback<Dockerode.Container>): void;
1119 createContainer(options: Dockerode.ContainerCreateOptions): Promise<Dockerode.Container>;
1120
1121 createImage(options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1122 createImage(auth: any, options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1123 createImage(options: {}): Promise<NodeJS.ReadableStream>;
1124 createImage(auth: any, options: {}): Promise<NodeJS.ReadableStream>;
1125
1126 loadImage(file: string | NodeJS.ReadableStream, options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1127 loadImage(file: string | NodeJS.ReadableStream, callback: Callback<NodeJS.ReadableStream>): void;
1128 loadImage(file: string | NodeJS.ReadableStream, options?: {}): Promise<NodeJS.ReadableStream>;
1129
1130 importImage(file: string | NodeJS.ReadableStream, options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1131 importImage(file: string | NodeJS.ReadableStream, callback: Callback<NodeJS.ReadableStream>): void;
1132 importImage(file: string | NodeJS.ReadableStream, options?: {}): Promise<NodeJS.ReadableStream>;
1133
1134 checkAuth(options: any, callback: Callback<any>): void;
1135 checkAuth(options: any): Promise<any>;
1136
1137 buildImage(file: string | NodeJS.ReadableStream | Dockerode.ImageBuildContext, options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1138 buildImage(file: string | NodeJS.ReadableStream | Dockerode.ImageBuildContext, callback: Callback<NodeJS.ReadableStream>): void;
1139 buildImage(file: string | NodeJS.ReadableStream | Dockerode.ImageBuildContext, options?: {}): Promise<NodeJS.ReadableStream>;
1140
1141 getContainer(id: string): Dockerode.Container;
1142
1143 getImage(name: string): Dockerode.Image;
1144
1145 getVolume(name: string): Dockerode.Volume;
1146
1147 getPlugin(name: string, remote: any): Dockerode.Plugin;
1148
1149 getService(id: string): Dockerode.Service;
1150
1151 getTask(id: string): Dockerode.Task;
1152
1153 getNode(id: string): Dockerode.Node;
1154
1155 getNetwork(id: string): Dockerode.Network;
1156
1157 getSecret(id: string): Dockerode.Secret;
1158
1159 getExec(id: string): Dockerode.Exec;
1160
1161 getConfig(id: string): Dockerode.Config;
1162
1163 listContainers(options: {}, callback: Callback<Dockerode.ContainerInfo[]>): void;
1164 listContainers(callback: Callback<Dockerode.ContainerInfo[]>): void;
1165 listContainers(options?: {}): Promise<Dockerode.ContainerInfo[]>;
1166
1167 listImages(options: {}, callback: Callback<Dockerode.ImageInfo[]>): void;
1168 listImages(callback: Callback<Dockerode.ImageInfo[]>): void;
1169 listImages(options?: {}): Promise<Dockerode.ImageInfo[]>;
1170
1171 listServices(options: {}, callback: Callback<any[]>): void;
1172 listServices(callback: Callback<any[]>): void;
1173 listServices(options?: {}): Promise<any[]>;
1174
1175 listNodes(options: {}, callback: Callback<any[]>): void;
1176 listNodes(callback: Callback<any[]>): void;
1177 listNodes(options?: {}): Promise<any[]>;
1178
1179 listTasks(options: {}, callback: Callback<any[]>): void;
1180 listTasks(callback: Callback<any[]>): void;
1181 listTasks(options?: {}): Promise<any[]>;
1182
1183 listSecrets(options: {}, callback: Callback<Dockerode.SecretInfo[]>): void;
1184 listSecrets(callback: Callback<Dockerode.SecretInfo[]>): void;
1185 listSecrets(options?: {}): Promise<Dockerode.SecretInfo[]>;
1186
1187 listPlugins(options: {}, callback: Callback<Dockerode.PluginInfo[]>): void;
1188 listPlugins(callback: Callback<Dockerode.PluginInfo[]>): void;
1189 listPlugins(options?: {}): Promise<Dockerode.PluginInfo[]>;
1190
1191 listVolumes(options: {}, callback: Callback<{
1192 Volumes: Dockerode.VolumeInspectInfo[];
1193 Warnings: string[];
1194 }>): void;
1195 listVolumes(callback: Callback<{
1196 Volumes: Dockerode.VolumeInspectInfo[];
1197 Warnings: string[];
1198 }>): void;
1199 listVolumes(options?: {}): Promise<{
1200 Volumes: Dockerode.VolumeInspectInfo[];
1201 Warnings: string[];
1202 }>;
1203
1204 listNetworks(options: {}, callback: Callback<any[]>): void;
1205 listNetworks(callback: Callback<any[]>): void;
1206 listNetworks(options?: {}): Promise<any[]>;
1207
1208 listConfigs(options: {}, callback: Callback<Dockerode.ConfigInfo[]>): void;
1209 listConfigs(callback: Callback<Dockerode.ConfigInfo[]>): void;
1210 listConfigs(options?: {}): Promise<Dockerode.ConfigInfo[]>;
1211
1212 createSecret(options: {}, callback: Callback<any>): void;
1213 createSecret(options: {}): Promise<any>;
1214
1215 createConfig(options: {}, callback: Callback<any>): void;
1216 createConfig(options: {}): Promise<any>;
1217
1218 createPlugin(options: {}, callback: Callback<any>): void;
1219 createPlugin(options: {}): Promise<any>;
1220
1221 createVolume(options: {}, callback: Callback<any>): void;
1222 createVolume(options: {}): Promise<any>;
1223
1224 createService(options: {}, callback: Callback<any>): void;
1225 createService(options: {}): Promise<any>;
1226
1227 createNetwork(options: {}, callback: Callback<any>): void;
1228 createNetwork(options: {}): Promise<any>;
1229
1230 searchImages(options: {}, callback: Callback<any>): void;
1231 searchImages(options: {}): Promise<any>;
1232
1233 pruneImages(options: {}, callback: Callback<Dockerode.PruneImagesInfo>): void;
1234 pruneImages(callback: Callback<Dockerode.PruneImagesInfo>): void;
1235 pruneImages(options?: {}): Promise<Dockerode.PruneImagesInfo>;
1236
1237 pruneContainers(options: {}, callback: Callback<Dockerode.PruneContainersInfo>): void;
1238 pruneContainers(callback: Callback<Dockerode.PruneContainersInfo>): void;
1239 pruneContainers(options?: {}): Promise<Dockerode.PruneContainersInfo>;
1240
1241 pruneVolumes(options: {}, callback: Callback<Dockerode.PruneVolumesInfo>): void;
1242 pruneVolumes(callback: Callback<Dockerode.PruneVolumesInfo>): void;
1243 pruneVolumes(options?: {}): Promise<Dockerode.PruneVolumesInfo>;
1244
1245 pruneNetworks(options: {}, callback: Callback<Dockerode.PruneNetworksInfo>): void;
1246 pruneNetworks(callback: Callback<Dockerode.PruneNetworksInfo>): void;
1247 pruneNetworks(options?: {}): Promise<Dockerode.PruneNetworksInfo>;
1248
1249 info(callback: Callback<any>): void;
1250 info(): Promise<any>;
1251
1252 df(callback: Callback<any>): void;
1253 df(): Promise<any>;
1254
1255 version(callback: Callback<Dockerode.DockerVersion>): void;
1256 version(): Promise<Dockerode.DockerVersion>;
1257
1258 ping(callback: Callback<any>): void;
1259 ping(): Promise<any>;
1260
1261 getEvents(options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1262 getEvents(callback: Callback<NodeJS.ReadableStream>): void;
1263 getEvents(options?: {}): Promise<NodeJS.ReadableStream>;
1264
1265 pull(repoTag: string, options: {}, callback: Callback<any>, auth?: {}): Dockerode.Image;
1266 pull(repoTag: string, options: {}, auth?: {}): Promise<any>;
1267
1268 run(image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], createOptions: {}, startOptions: {}, callback: Callback<any>): events.EventEmitter;
1269 run(image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], startOptions: {}, callback: Callback<any>): events.EventEmitter;
1270 run(image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], callback: Callback<any>): events.EventEmitter;
1271 run(image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], createOptions: {}, callback: Callback<any>): events.EventEmitter;
1272 run(image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], createOptions?: {}, startOptions?: {}): Promise<any>;
1273
1274 swarmInit(options: {}, callback: Callback<any>): void;
1275 swarmInit(options: {}): Promise<any>;
1276
1277 swarmJoin(options: {}, callback: Callback<any>): void;
1278 swarmJoin(options: {}): Promise<any>;
1279
1280 swarmLeave(options: {}, callback: Callback<any>): void;
1281 swarmLeave(options: {}): Promise<any>;
1282
1283 swarmUpdate(options: {}, callback: Callback<any>): void;
1284 swarmUpdate(options: {}): Promise<any>;
1285
1286 swarmInspect(callback: Callback<any>): void;
1287 swarmInspect(): Promise<any>;
1288
1289 modem: any;
1290}
1291
1292export = Dockerode;