From da8fb10ab46b47f29e1be4a56ac743150ca020f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20L=C3=BCck?= Date: Fri, 6 Sep 2019 21:56:08 +0200 Subject: [PATCH 1/2] Update project homepage --- README.md | 28 ++++++++++++++++------------ composer.json | 4 ++-- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 736a6e0..4440728 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,25 @@ -# clue/docker-react [![Build Status](https://travis-ci.org/clue/php-docker-react.svg?branch=master)](https://travis-ci.org/clue/php-docker-react) +# clue/reactphp-docker [![Build Status](https://travis-ci.org/clue/reactphp-docker.svg?branch=master)](https://travis-ci.org/clue/reactphp-docker) -Simple async/streaming access to the [Docker](https://www.docker.com/) API, built on top of [React PHP](http://reactphp.org/). +Async, event-driven access to the [Docker Engine API](https://docs.docker.com/develop/sdk/), built on top of [ReactPHP](https://reactphp.org/). [Docker](https://www.docker.com/) is a popular open source platform to run and share applications within isolated, lightweight containers. -The [Docker Remote API](https://docs.docker.com/reference/api/docker_remote_api_v1.15/) +The [Docker Engine API](https://docs.docker.com/develop/sdk/) allows you to control and monitor your containers and images. Among others, it can be used to list existing images, download new images, execute arbitrary commands within isolated containers, stop running containers and much more. +This lightweight library provides an efficient way to work with the Docker Engine API +from within PHP. It enables you to work with its images and containers or use +its event-driven model to react to changes and events happening. * **Async execution of Actions** - Send any number of actions (commands) to your Docker daemon in parallel and process their responses as soon as results come in. - The Promise-based design provides a *sane* interface to working with out of bound responses. + The Promise-based design provides a *sane* interface to working with out of order responses. * **Lightweight, SOLID design** - - Provides a thin abstraction that is [*just good enough*](http://en.wikipedia.org/wiki/Principle_of_good_enough) + Provides a thin abstraction that is [*just good enough*](https://en.wikipedia.org/wiki/Principle_of_good_enough) and does not get in your way. - This library is merely a very thin wrapper around the Remote API. + This library is merely a very thin wrapper around the [Docker Engine API](https://docs.docker.com/develop/sdk/). * **Good test coverage** - Comes with an automated tests suite and is regularly tested in the *real world* @@ -100,7 +103,7 @@ The recommended way to create a `Client` is using the `Factory` (see above). #### Commands -All public methods on the `Client` resemble the API described in the [Remote API documentation](https://docs.docker.com/reference/api/docker_remote_api_v1.15/) like this: +All public methods on the `Client` resemble the API described in the [Docker Engine API documentation](https://docs.docker.com/develop/sdk/) like this: ```php $client->containerList($all, $size); @@ -120,7 +123,7 @@ $client->version(); ``` Listing all available commands is out of scope here, please refer to the -[Remote API documentation](https://docs.docker.com/reference/api/docker_remote_api_v1.15/) +[Docker Engine API documentation](https://docs.docker.com/develop/sdk/) or the [class outline](src/Client.php). Each of these commands supports async operation and either *resolves* with its *results* @@ -151,7 +154,7 @@ If this looks strange to you, you can also use the more traditional [blocking AP As stated above, this library provides you a powerful, async API by default. If, however, you want to integrate this into your traditional, blocking environment, -you should look into also using [clue/block-react](https://github.com/clue/php-block-react). +you should look into also using [clue/reactphp-block](https://github.com/clue/reactphp-block). The resulting blocking code could look something like this: @@ -183,7 +186,7 @@ $promises = array( $inspections = Block\awaitAll($promises, $loop); ``` -Please refer to [clue/block-react](https://github.com/clue/php-block-react#readme) for more details. +Please refer to [clue/reactphp-block](https://github.com/clue/reactphp-block#readme) for more details. #### Command streaming @@ -279,7 +282,7 @@ $stream = $client->containerCopyStream($image, $config); Accessing individual files in the TAR file format string or stream is out of scope for this library. -Several libraries are available, one that is known to work is [clue/tar-react](https://github.com/clue/php-tar-react). +Several libraries are available, one that is known to work is [clue/reactphp-tar](https://github.com/clue/reactphp-tar). See also the [copy example](examples/copy.php) and the [export example](examples/export.php). @@ -380,7 +383,8 @@ The `getData()` method can be used to obtain the progress message. ## Install -The recommended way to install this library is [through composer](http://getcomposer.org). [New to composer?](http://getcomposer.org/doc/00-intro.md) +The recommended way to install this library is [through Composer](https://getcomposer.org). +[New to composer?](https://getcomposer.org/doc/00-intro.md) ```JSON { diff --git a/composer.json b/composer.json index 85f1f1d..d45e3bc 100644 --- a/composer.json +++ b/composer.json @@ -1,8 +1,8 @@ { "name": "clue/docker-react", - "description": "Simple async/streaming Docker client", + "description": "Async, event-driven access to the Docker Engine API, built on top of ReactPHP.", "keywords": ["Docker", "container", "ReactPHP", "async"], - "homepage": "https://github.com/clue/php-docker-react", + "homepage": "https://github.com/clue/reactphp-docker", "license": "MIT", "authors": [ { From 6b2228dd35fd92741c296ce865f3417076fdaa50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20L=C3=BCck?= Date: Sat, 7 Sep 2019 14:05:19 +0200 Subject: [PATCH 2/2] Update all links to current Docker Engine API documentation --- src/Client.php | 121 +++++++++++++++++++++++++------------------------ 1 file changed, 61 insertions(+), 60 deletions(-) diff --git a/src/Client.php b/src/Client.php index 084e181..bd18a7c 100644 --- a/src/Client.php +++ b/src/Client.php @@ -10,17 +10,18 @@ use Rize\UriTemplate; /** - * The Docker Remote API client can be used to control your (local) Docker daemon. + * The Docker Engine API client can be used to control your (local) Docker daemon. * * This Client implementation provides a very thin wrapper around this - * Remote API and exposes its exact data models. + * Docker Engine API and exposes its exact data models. * The Client uses HTTP requests via a local UNIX socket path or remotely via a * TLS-backed TCP/IP connection. * - * Primarily tested against v1.15 API, but should also work against - * other versions (in particular newer ones). + * This client has been tested against a variety of Docker Engine API versions, + * with support for Docker Engine API v1.40 (and newer) and versions as old as + * Docker Engine API v1.14. See also https://docs.docker.com/engine/api/version-history/. * - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/ + * @link https://docs.docker.com/develop/sdk/ */ class Client { @@ -64,7 +65,7 @@ public function __construct(Browser $browser, ResponseParser $parser = null, Str * Ping the docker server * * @return PromiseInterface Promise "OK" - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#ping-the-docker-server + * @link https://docs.docker.com/engine/api/v1.40/#operation/SystemPing */ public function ping() { @@ -75,7 +76,7 @@ public function ping() * Display system-wide information * * @return PromiseInterface Promise system info (see link) - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#display-system-wide-information + * @link https://docs.docker.com/engine/api/v1.40/#operation/SystemInfo */ public function info() { @@ -86,7 +87,7 @@ public function info() * Show the docker version information * * @return PromiseInterface Promise version info (see link) - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#show-the-docker-version-information + * @link https://docs.docker.com/engine/api/v1.40/#operation/SystemVersion */ public function version() { @@ -117,9 +118,9 @@ public function version() * * @param float|null $since timestamp used for polling * @param float|null $until timestamp used for polling - * @param array $filters (optional) filters to apply (requires API v1.16+ / Docker v1.4+) + * @param array $filters (optional) filters to apply (requires Docker Engine API v1.16+ / Docker v1.4+) * @return PromiseInterface Promise array of event objects - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#monitor-dockers-events + * @link https://docs.docker.com/engine/api/v1.40/#operation/SystemEvents * @uses self::eventsStream() * @see self::eventsStream() */ @@ -155,9 +156,9 @@ public function events($since = null, $until = null, $filters = array()) * * @param float|null $since timestamp used for polling * @param float|null $until timestamp used for polling - * @param array $filters (optional) filters to apply (requires API v1.16+ / Docker v1.4+) + * @param array $filters (optional) filters to apply (requires Docker Engine API v1.16+ / Docker v1.4+) * @return ReadableStreamInterface stream of event objects - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#monitor-dockers-events + * @link https://docs.docker.com/engine/api/v1.40/#operation/SystemEvents * @see self::events() */ public function eventsStream($since = null, $until = null, $filters = array()) @@ -182,7 +183,7 @@ public function eventsStream($since = null, $until = null, $filters = array()) * @param boolean $all * @param boolean $size * @return PromiseInterface Promise list of container objects - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#list-containers + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerList */ public function containerList($all = false, $size = false) { @@ -203,7 +204,7 @@ public function containerList($all = false, $size = false) * @param array $config e.g. `array('Image' => 'busybox', 'Cmd' => 'date')` (see link) * @param string|null $name (optional) name to assign to this container * @return PromiseInterface Promise container properties `array('Id' => $containerId', 'Warnings' => array())` - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#create-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerCreate */ public function containerCreate($config, $name = null) { @@ -223,7 +224,7 @@ public function containerCreate($config, $name = null) * * @param string $container container ID * @return PromiseInterface Promise container properties - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#inspect-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerInspect */ public function containerInspect($container) { @@ -243,7 +244,7 @@ public function containerInspect($container) * @param string $container container ID * @param string|null $ps_args (optional) ps arguments to use (e.g. aux) * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#list-processes-running-inside-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerTop */ public function containerTop($container, $ps_args = null) { @@ -263,7 +264,7 @@ public function containerTop($container, $ps_args = null) * * @param string $container container ID * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#inspect-changes-on-a-containers-filesystem + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerChanges */ public function containerChanges($container) { @@ -289,12 +290,12 @@ public function containerChanges($container) * * Accessing individual files in the TAR file format string is out of scope * for this library. Several libraries are available, one that is known to - * work is clue/tar-react (see links). + * work is clue/reactphp-tar (see links). * * @param string $container container ID * @return PromiseInterface Promise tar stream - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#export-a-container - * @link https://github.com/clue/php-tar-react library clue/tar-react + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerExport + * @link https://github.com/clue/reactphp-tar * @see self::containerExportStream() */ public function containerExport($container) @@ -320,15 +321,15 @@ public function containerExport($container) * * Accessing individual files in the TAR file format stream is out of scope * for this library. Several libraries are available, one that is known to - * work is clue/tar-react (see links). + * work is clue/reactphp-tar (see links). * * The resulting stream is a well-behaving readable stream that will emit * the normal stream events. * * @param string $container container ID * @return ReadableStreamInterface tar stream - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#export-a-container - * @link https://github.com/clue/php-tar-react library clue/tar-react + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerExport + * @link https://github.com/clue/reactphp-tar * @see self::containerExport() */ public function containerExportStream($container) @@ -352,7 +353,7 @@ public function containerExportStream($container) * @param int $w TTY width * @param int $h TTY height * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#resize-a-container-tty + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerResize */ public function containerResize($container, $w, $h) { @@ -374,7 +375,7 @@ public function containerResize($container, $w, $h) * @param string $container container ID * @param array $config (optional) start config (see link) * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#start-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerStart */ public function containerStart($container, $config = array()) { @@ -395,7 +396,7 @@ public function containerStart($container, $config = array()) * @param string $container container ID * @param null|int $t (optional) number of seconds to wait before killing the container * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#stop-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerStop */ public function containerStop($container, $t = null) { @@ -416,7 +417,7 @@ public function containerStop($container, $t = null) * @param string $container container ID * @param null|int $t (optional) number of seconds to wait before killing the container * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#restart-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerRestart */ public function containerRestart($container, $t = null) { @@ -437,7 +438,7 @@ public function containerRestart($container, $t = null) * @param string $container container ID * @param string|int|null $signal (optional) signal name or number * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#kill-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerKill */ public function containerKill($container, $signal = null) { @@ -455,12 +456,12 @@ public function containerKill($container, $signal = null) /** * Rename the container id * - * Requires API v1.17+ / Docker v1.5+ + * Requires Docker Engine API v1.17+ / Docker v1.5+ * * @param string $container container ID * @param string $name new name for the container * @return PromiseInterface Promise - * @link https://docs.docker.com/engine/reference/api/docker_remote_api_v1.17/#rename-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerRename */ public function containerRename($container, $name) { @@ -480,7 +481,7 @@ public function containerRename($container, $name) * * @param string $container container ID * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#pause-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerPause */ public function containerPause($container) { @@ -499,7 +500,7 @@ public function containerPause($container) * * @param string $container container ID * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#unpause-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerUnpause */ public function containerUnpause($container) { @@ -518,7 +519,7 @@ public function containerUnpause($container) * * @param string $container container ID * @return PromiseInterface Promise `array('StatusCode' => 0)` (see link) - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#wait-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerWait */ public function containerWait($container) { @@ -539,7 +540,7 @@ public function containerWait($container) * @param boolean $v Remove the volumes associated to the container. Default false * @param boolean $force Kill then remove the container. Default false * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#remove-a-container + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerRemove */ public function containerRemove($container, $v = false, $force = false) { @@ -567,13 +568,13 @@ public function containerRemove($container, $v = false, $force = false) * * Accessing individual files in the TAR file format string is out of scope * for this library. Several libraries are available, one that is known to - * work is clue/tar-react (see links). + * work is clue/reactphp-tar (see links). * * @param string $container container ID * @param string $resource path to file or directory to copy * @return PromiseInterface Promise tar stream - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#copy-files-or-folders-from-a-container - * @link https://github.com/clue/php-tar-react library clue/tar-react + * @link https://docs.docker.com/engine/api/v1.22/#copy-files-or-folders-from-a-container + * @link https://github.com/clue/reactphp-tar * @see self::containerCopyStream() */ public function containerCopy($container, $path) @@ -602,7 +603,7 @@ public function containerCopy($container, $path) * * Accessing individual files in the TAR file format stream is out of scope * for this library. Several libraries are available, one that is known to - * work is clue/tar-react (see links). + * work is clue/reactphp-tar (see links). * * The resulting stream is a well-behaving readable stream that will emit * the normal stream events. @@ -610,8 +611,8 @@ public function containerCopy($container, $path) * @param string $container container ID * @param string $path path to file or directory to copy * @return ReadableStreamInterface tar stream - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#copy-files-or-folders-from-a-container - * @link https://github.com/clue/php-tar-react library clue/tar-react + * @link https://docs.docker.com/engine/api/v1.22/#copy-files-or-folders-from-a-container + * @link https://github.com/clue/reactphp-tar * @see self::containerCopy() */ public function containerCopyStream($container, $path) @@ -639,7 +640,7 @@ public function containerCopyStream($container, $path) * * @param boolean $all * @return PromiseInterface Promise list of image objects - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#list-images + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImageList * @todo support $filters param */ public function imageList($all = false) @@ -674,7 +675,7 @@ public function imageList($all = false) * @param string|null $registry the registry to pull from * @param array|null $registryAuth AuthConfig object (to send as X-Registry-Auth header) * @return PromiseInterface Promise stream of message objects - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#create-an-image + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImageCreate * @uses self::imageCreateStream() */ public function imageCreate($fromImage = null, $fromSrc = null, $repo = null, $tag = null, $registry = null, $registryAuth = null) @@ -708,7 +709,7 @@ public function imageCreate($fromImage = null, $fromSrc = null, $repo = null, $t * @param string|null $registry the registry to pull from * @param array|null $registryAuth AuthConfig object (to send as X-Registry-Auth header) * @return ReadableStreamInterface - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#create-an-image + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImageCreate * @see self::imageCreate() * @uses self::authHeaders() */ @@ -736,7 +737,7 @@ public function imageCreateStream($fromImage = null, $fromSrc = null, $repo = nu * * @param string $image image ID * @return PromiseInterface Promise image properties - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#inspect-an-image + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImageInspect */ public function imageInspect($image) { @@ -755,7 +756,7 @@ public function imageInspect($image) * * @param string $image image ID * @return PromiseInterface Promise list of image history objects - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#get-the-history-of-an-image + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImageHistory */ public function imageHistory($image) { @@ -788,7 +789,7 @@ public function imageHistory($image) * @param array|null $registryAuth (optional) AuthConfig object (to send as X-Registry-Auth header) * @return PromiseInterface Promise list of image push messages * @uses self::imagePushStream() - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#push-an-image-on-the-registry + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImagePush */ public function imagePush($image, $tag = null, $registry = null, $registryAuth = null) { @@ -820,7 +821,7 @@ public function imagePush($image, $tag = null, $registry = null, $registryAuth = * @param array|null $registryAuth (optional) AuthConfig object (to send as X-Registry-Auth header) * @return ReadableStreamInterface stream of image push messages * @uses self::authHeaders() - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#push-an-image-on-the-registry + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImagePush */ public function imagePushStream($image, $tag = null, $registry = null, $registryAuth = null) { @@ -847,7 +848,7 @@ public function imagePushStream($image, $tag = null, $registry = null, $registry * @param string|null $tag The new tag name * @param boolean $force 1/True/true or 0/False/false, default false * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#tag-an-image-into-a-repository + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImageTag */ public function imageTag($image, $repo, $tag = null, $force = false) { @@ -871,7 +872,7 @@ public function imageTag($image, $repo, $tag = null, $force = false) * @param boolean $force 1/True/true or 0/False/false, default false * @param boolean $noprune 1/True/true or 0/False/false, default false * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#remove-an-image + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImageRemove */ public function imageRemove($image, $force = false, $noprune = false) { @@ -892,7 +893,7 @@ public function imageRemove($image, $force = false, $noprune = false) * * @param string $term term to search * @return PromiseInterface Promise list of image search result objects - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#search-images + * @link https://docs.docker.com/engine/api/v1.40/#operation/ImageSearch */ public function imageSearch($term) { @@ -937,10 +938,10 @@ public function imageSearch($term) * @param boolean $stdin attaches to STDIN of the exec command * @param boolean $stdout attaches to STDOUT of the exec command * @param boolean $stderr attaches to STDERR of the exec command - * @param string|int $user user-specific exec, otherwise defaults to main container user (requires API v1.19+ / Docker v1.7+) - * @param boolean $privileged privileged exec with all capabilities enabled (requires API v1.19+ / Docker v1.7+) + * @param string|int $user user-specific exec, otherwise defaults to main container user (requires Docker Engine API v1.19+ / Docker v1.7+) + * @param boolean $privileged privileged exec with all capabilities enabled (requires Docker Engine API v1.19+ / Docker v1.7+) * @return PromiseInterface Promise with exec ID in the form of `array("Id" => $execId)` - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#exec-create + * @link https://docs.docker.com/engine/api/v1.40/#operation/ContainerExec */ public function execCreate($container, $cmd, $tty = false, $stdin = false, $stdout = true, $stderr = true, $user = '', $privileged = false) { @@ -981,7 +982,7 @@ public function execCreate($container, $cmd, $tty = false, $stdin = false, $stdo * @param string $exec exec ID * @param boolean $tty tty mode * @return PromiseInterface Promise buffered exec data - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#exec-start + * @link https://docs.docker.com/engine/api/v1.40/#operation/ExecStart * @uses self::execStartStream() * @see self::execStartStream() * @see self::execStartDetached() @@ -1002,7 +1003,7 @@ public function execStart($exec, $tty = false) * @param string $exec exec ID * @param boolean $tty tty mode * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#exec-start + * @link https://docs.docker.com/engine/api/v1.40/#operation/ExecStart * @see self::execStart() * @see self::execStartStream() */ @@ -1046,7 +1047,7 @@ public function execStartDetached($exec, $tty = false) * @param boolean $tty tty mode * @param string $stderrEvent custom event to emit for STDERR data (otherwise emits as "data") * @return ReadableStreamInterface stream of exec data - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#exec-start + * @link https://docs.docker.com/engine/api/v1.40/#operation/ExecStart * @see self::execStart() * @see self::execStartDetached() */ @@ -1086,7 +1087,7 @@ public function execStartStream($exec, $tty = false, $stderrEvent = null) * @param int $w TTY width * @param int $h TTY height * @return PromiseInterface Promise - * @link https://docs.docker.com/reference/api/docker_remote_api_v1.15/#exec-resize + * @link https://docs.docker.com/engine/api/v1.40/#operation/ExecResize */ public function execResize($exec, $w, $h) { @@ -1105,11 +1106,11 @@ public function execResize($exec, $w, $h) /** * Returns low-level information about the exec command id. * - * Requires API v1.16+ / Docker v1.4+ + * Requires Docker Engine API v1.16+ / Docker v1.4+ * * @param string $exec exec ID * @return PromiseInterface Promise - * @link https://docs.docker.com/engine/reference/api/docker_remote_api_v1.16/#exec-inspect + * @link https://docs.docker.com/engine/api/v1.40/#operation/ExecInspect */ public function execInspect($exec) { @@ -1159,7 +1160,7 @@ private function json($data) * * @param array $registryAuth * @return array - * @link https://docs.docker.com/reference/api/docker_remote_api/ for details about the AuthConfig object + * @link https://docs.docker.com/engine/api/v1.40/#section/Authentication for details about the AuthConfig object * @link https://github.com/docker/docker/issues/9315 for error description */ private function authHeaders($registryAuth)