mirror of https://github.com/docker/cli.git
Docker pull/push with max concurrency limits.
This fix tries to address issues raised in #20936 and #22443 where `docker pull` or `docker push` fails because of the concurrent connection failing. Currently, the number of maximum concurrent connections is controlled by `maxDownloadConcurrency` and `maxUploadConcurrency` which are hardcoded to 3 and 5 respectively. Therefore, in situations where network connections don't support multiple downloads/uploads, failures may encounter for `docker push` or `docker pull`. This fix tries changes `maxDownloadConcurrency` and `maxUploadConcurrency` to adjustable by passing `--max-concurrent-uploads` and `--max-concurrent-downloads` to `docker daemon` command. The documentation related to docker daemon has been updated. Additional test case have been added to cover the changes in this fix. This fix fixes #20936. This fix fixes #22443. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
parent
7717d82d97
commit
9bc4cd536e
|
@ -54,6 +54,8 @@ weight = -1
|
||||||
--log-driver="json-file" Default driver for container logs
|
--log-driver="json-file" Default driver for container logs
|
||||||
--log-opt=[] Log driver specific options
|
--log-opt=[] Log driver specific options
|
||||||
--mtu=0 Set the containers network MTU
|
--mtu=0 Set the containers network MTU
|
||||||
|
--max-concurrent-downloads=3 Set the max concurrent downloads for each pull
|
||||||
|
--max-concurrent-uploads=5 Set the max concurrent uploads for each push
|
||||||
--disable-legacy-registry Do not contact legacy registries
|
--disable-legacy-registry Do not contact legacy registries
|
||||||
-p, --pidfile="/var/run/docker.pid" Path to use for daemon PID file
|
-p, --pidfile="/var/run/docker.pid" Path to use for daemon PID file
|
||||||
--raw-logs Full timestamps without ANSI coloring
|
--raw-logs Full timestamps without ANSI coloring
|
||||||
|
@ -913,6 +915,8 @@ This is a full example of the allowed configuration options in the file:
|
||||||
"cluster-store": "",
|
"cluster-store": "",
|
||||||
"cluster-store-opts": [],
|
"cluster-store-opts": [],
|
||||||
"cluster-advertise": "",
|
"cluster-advertise": "",
|
||||||
|
"max-concurrent-downloads": 3,
|
||||||
|
"max-concurrent-uploads": 5,
|
||||||
"debug": true,
|
"debug": true,
|
||||||
"hosts": [],
|
"hosts": [],
|
||||||
"log-level": "",
|
"log-level": "",
|
||||||
|
@ -963,6 +967,8 @@ The list of currently supported options that can be reconfigured is this:
|
||||||
- `cluster-store-opts`: it uses the new options to reload the discovery store.
|
- `cluster-store-opts`: it uses the new options to reload the discovery store.
|
||||||
- `cluster-advertise`: it modifies the address advertised after reloading.
|
- `cluster-advertise`: it modifies the address advertised after reloading.
|
||||||
- `labels`: it replaces the daemon labels with a new set of labels.
|
- `labels`: it replaces the daemon labels with a new set of labels.
|
||||||
|
- `max-concurrent-downloads`: it updates the max concurrent downloads for each pull.
|
||||||
|
- `max-concurrent-uploads`: it updates the max concurrent uploads for each push.
|
||||||
|
|
||||||
Updating and reloading the cluster configurations such as `--cluster-store`,
|
Updating and reloading the cluster configurations such as `--cluster-store`,
|
||||||
`--cluster-advertise` and `--cluster-store-opts` will take effect only if
|
`--cluster-advertise` and `--cluster-store-opts` will take effect only if
|
||||||
|
|
|
@ -44,6 +44,8 @@ dockerd - Enable daemon mode
|
||||||
[**--log-driver**[=*json-file*]]
|
[**--log-driver**[=*json-file*]]
|
||||||
[**--log-opt**[=*map[]*]]
|
[**--log-opt**[=*map[]*]]
|
||||||
[**--mtu**[=*0*]]
|
[**--mtu**[=*0*]]
|
||||||
|
[**--max-concurrent-downloads**[=*3*]]
|
||||||
|
[**--max-concurrent-uploads**[=*5*]]
|
||||||
[**-p**|**--pidfile**[=*/var/run/docker.pid*]]
|
[**-p**|**--pidfile**[=*/var/run/docker.pid*]]
|
||||||
[**--raw-logs**]
|
[**--raw-logs**]
|
||||||
[**--registry-mirror**[=*[]*]]
|
[**--registry-mirror**[=*[]*]]
|
||||||
|
@ -197,6 +199,12 @@ unix://[/path/to/socket] to use.
|
||||||
**--mtu**=*0*
|
**--mtu**=*0*
|
||||||
Set the containers network mtu. Default is `0`.
|
Set the containers network mtu. Default is `0`.
|
||||||
|
|
||||||
|
**--max-concurrent-downloads**=*3*
|
||||||
|
Set the max concurrent downloads for each pull. Default is `3`.
|
||||||
|
|
||||||
|
**--max-concurrent-uploads**=*5*
|
||||||
|
Set the max concurrent uploads for each push. Default is `5`.
|
||||||
|
|
||||||
**-p**, **--pidfile**=""
|
**-p**, **--pidfile**=""
|
||||||
Path to use for daemon PID file. Default is `/var/run/docker.pid`
|
Path to use for daemon PID file. Default is `/var/run/docker.pid`
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue