Docker push continuously retries with large files - docker

Docker push is failing when I have large HDF5 files in the image. One file is between 2.4 and 3.2 GB. It doesn't matter which file it is, it will always fail. Small HDF5 files (19MB) will succeed.
I actually do not get any error message if I attempt to push to the docker registry. The UI looks like it is pushing the file, then when it has pushed all the bytes (100%), it says "Retrying in 15s", and then starts all over again.
I have some error logs from the gitlab-registry below, but a "docker push --verbose" method would be quite helpful.
==> /var/log/gitlab/registry/current <== 2017-08-09_09:23:22.28799 time="2017-08-09T09:23:22.287891292Z" level=error msg="client
disconnected during blob PATCH" auth.user.name=root
contentLength=2000110499 copied=1432460362 environment=production
error="unexpected EOF" go.version=go1.8.1
http.request.host=registry.gitlab.bignut.ai
http.request.id=cb09cab1-8a4c-4001-9aa4-7c11dc9c04c9
http.request.method=PATCH http.request.remoteaddr=35.189.251.28
http.request.uri="/v2/root/gitlab-docker-test/wa_tr/wa_tr_test_data/blobs/uploads/d463eda2-4d84-4b0a-a76a-37dfc043d750?_state=ZTIcKZ18tNeK8HAEIyt4iy0zpqDTC3L6h7phBly07S97Ik5hbWUiOiJyb290L2dpdGxhYi1kb2NrZXItdGVzdC93YV90cmFkaW5nL3dhX3RyYWRpbmdfdGVzdF9kYXRhIiwiVVVJRCI6ImQ0NjNlZGEyLTRkODQtNGIwYS1hNzZhLTM3ZGZjMDQzZDc1MCIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAxNy0wOC0wOVQwOToxOTowNC43ODE1NzIwMTlaIn0%3D"
http.request.useragent="docker/17.06.0-ce go/go1.8.3
git-commit/02c1d87 kernel/4.4.0-89-generic os/linux arch/amd64
UpstreamClient(Docker-Client/17.06.0-ce (linux))"
instance.id=070c4d24-6572-472d-81a4-0ecccd173789 service=registry
vars.name="root/gitlab-docker-test/wa_tr/wa_tr_test_data"
vars.uuid=d463eda2-4d84-4b0a-a76a-37dfc043d750
version=v2.6.1-1-gdd544a8 2017-08-09_09:23:23.05762 127.0.0.1 - -
[09/Aug/2017:09:22:42 +0000] "PATCH
/v2/root/gitlab-docker-test/wa_tr/wa_tr_test_data/blobs/uploads/d463eda2-4d84-4b0a-a76a-37dfc043d750?_state=ZTIcKZ18tNeK8HAEIyt4iy0zpqDTC3L6h7phBly07S97Ik5hbWUiOiJyb290L2dpdGxhYi1kb2NrZXItdGVzdC93YV90cmTM3ZGZjMDRhcnRlZEF0IjoiMjAxOToxOTowNC43ODE1NzIwMTlaIn0%3D
HTTP/1.0" 499 0 "" "docker/17.06.0-ce go/go1.8.3 git-commit/02c1d87
kernel/4.4.0-89-generic os/linux arch/amd64
UpstreamClient(Docker-Client/17.06.0-ce (linux))"
Output of docker version:
Client: Version: 17.06.0-ce API version:
1.30 Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:23:31 2017 OS/Arch: linux/amd64
Server: Version: 17.06.0-ce API version: 1.30 (minimum version 1.12)
Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:19:04
2017 OS/Arch: linux/amd64 Experimental: false
Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 28 Server
Version: 17.06.0-ce Storage Driver: aufs Root Dir:
/var/lib/docker/aufs Backing Filesystem: extfs Dirs: 40 Dirperm1
Supported: true Logging Driver: json-file Cgroup Driver: cgroupfs
Plugins: Volume: local Network: bridge host macvlan null overlay Log:
awslogs fluentd gcplogs gelf journald json-file logentries splunk
syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init
Binary: docker-init containerd version:
cfb82a876ecc11b5ca0977d1733adbe58599088a runc version:
2d41c047c83e09a6d61d464906feb2a2f3c52aa4 init version: 949e6fa
Security Options: apparmor seccomp Profile: default Kernel Version:
4.4.0-89-generic Operating System: Ubuntu 16.04.2 LTS OSType: linux Architecture: x86_64 CPUs: 16 Total Memory: 91.47GiB Name: amitt ID:
5PGY:FXXK:WB4M:YBZP:SQZU:DIZD:6WYC:CZ6T:NZZ5:3C7D:WQHX:O3UB Docker
Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode
(server): false Registry: https://index.docker.io/v1/ Experimental:
false Insecure Registries:
127.0.0.0/8 Live Restore Enabled: false
WARNING: No swap limit support

Related

docker: "first record does not look like a TLS handshake" error when pull image

I have just installed docker and then try running hello-worldprogram.
My server is behind proxy of company. So, I set proxy environment variables according to manual from docker in a file named /etc/systemd/system/docker.service.d/http-proxy.conf:
[Service]
Environment="HTTP_PROXY=http://username:password#server:8080"
Environment="HTTPS_PROXY=https://username:password#server:8080"
Environment="NO_PROXY=localhost,127.0.0.1,localaddress,.localdomain.com"
But, while run $ sudo docker run hello-world. I get the error
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: tls: first record does not look like a TLS handshake.
See 'docker run --help'.
This is docker version:
Client: Docker Engine - Community
Version: 19.03.9
API version: 1.40
Go version: go1.13.10
Git commit: 9d988398e7
Built: Fri May 15 00:25:34 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.9
API version: 1.40 (minimum version 1.12)
Go version: go1.13.10
Git commit: 9d988398e7
Built: Fri May 15 00:24:07 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
This is docker info ( I hidden informations about proxy of my company ):
Client:
Debug Mode: false
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 19.03.9
Storage Driver: overlay
Backing Filesystem: extfs
Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.15.0-65-generic
Operating System: Ubuntu 16.04.6 LTS
OSType: linux
Architecture: x86_64
CPUs: 48
Total Memory: 31.31GiB
Name: SPP00007867
ID: EEZD:GC4D:IWYF:2MVR:RLXW:MAZU:EQPV:A3FY:RFUY:6NXP:EJNG:TRMD
Docker Root Dir: /mnt/docker-data
Debug Mode: false
HTTP Proxy: http://xxxxx:xxxxx#xxx:8080
HTTPS Proxy: http://xxxxx:xxxxx#xxx:8080
No Proxy: localhost,127.0.0.1,localaddress,.localdomain.com
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No swap limit support
WARNING: the overlay storage-driver is deprecated, and will be removed in a future release.
Can anyone help me ? Thank All !!!
I had this exact issue and it was due to HTTPS_PROXY not having the correct variable (https instead of http) assigned to it in both bashrc and docker desktop settings configuration

Not able to ping Windows Host machine from my Docker Container

I am running docker container using Docker Desktop on Windows 2016 server. I am using Docker Desktop, instead of Docker EE on Windows 2016 server because I want to run Linux Container. Details of Docker is as follows: -
Version of Docker Desktop is
Version 2.0.0.3 (31259)
Channel: stable
Output of docker info is as follows: -
Containers: 3
Running: 1
Paused: 0
Stopped: 2
Images: 2
Server Version: 18.09.2
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce
runc version: 09c8266bf2fcf9519a651b04ae54c967b9ab86ec
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 4.9.125-linuxkit
Operating System: Docker for Windows
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.934GiB
Name: linuxkit-00155d2dab04
ID: OQK7:Z24A:V5KV:CYEW:6QQE:KXOB:UXWY:KVRF:QEHF:SATF:CTLU:WTPM
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
File Descriptors: 32
Goroutines: 53
System Time: 2020-02-26T06:36:51.0000459Z
EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
Output of docker version is as follows: -
Client: Docker Engine - Community
Version: 18.09.2
API version: 1.39
Go version: go1.10.8
Git commit: 6247962
Built: Sun Feb 10 04:12:31 2019
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.2
API version: 1.39 (minimum version 1.12)
Go version: go1.10.6
Git commit: 6247962
Built: Sun Feb 10 04:13:06 2019
OS/Arch: linux/amd64
Experimental: false
I am not able to ping my windows host machine from my Linux container.
But this is possible on my Windows 10 machine.
Any clue in this what I am missing???
Run ifconfig and check the IP of docker0 interface.
And ping using that IP.

Docker command hang on container

I have created one container by using msql-server:5.7. After creating, I am able to access it without a problem. But after a couple of minutes, all Docker commands in the container becomes unresponsive. I cannot inspect, stop or kill. Is there a way I can debug? I have some other containers running as well, but those are OK.
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca471079614b mysql/mysql-server:5.7 "/entrypoint.sh mysq…" 2 hours ago Up 2 hours (healthy) 33060/tcp db
$ docker info
Containers: 8
Running: 8
Paused: 0
Stopped: 0
Images: 94
Server Version: 17.12.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 89623f28b87a6004d4b785663257362d1658a729
runc version: b2567b37d7b75eb4cf325b77297b140ea686ce8f
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-1047-aws
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 31.42GiB
Name: ip-172-31-12-60
ID: I7FQ:XUUN:UU5C:KVJI:JPDT:L2BV:B3EQ:5LHI:5XD5:PSWP:NI7Y:BDX7
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No swap limit support
$ docker version
Client:
Version: 17.12.0-ce
API version: 1.35
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:11:19 2017
OS/Arch: linux/amd64
Server:
Engine:
Version: 17.12.0-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:09:53 2017
OS/Arch: linux/amd64
Experimental: false
$ uname -a
Linux ip-172-31-12-60 4.4.0-1047-aws #56-Ubuntu SMP Sat Jan 6 19:39:06 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Are you double sure this is not docker specific issue? Maybe unsupported kernel version? All logs are dumped to a log file inside the volume in the /var/lib/docker/volumes directory. Try running the container without the -d flag so all output goes to stdout directly to identify the problem.
after couple of day trying, it turns out I change my instance-type from m4.2xlarge to m4.4xlarge. and after trying 1 days. it seems the problem solved. I have no idea why but it is good so far

Docker: Error grabbing logs: invalid character '\x00' looking for beginning of value

I upgraded my Docker version to the latest one and I got this error:
error from daemon in stream: Error grabbing logs: invalid character '\x00' looking for beginning of value
I can’t read logs using:
docker-compose logs -f myservice
nor with:
docker logs -f 6f454c73ff9c
Output of Docker version:
Client:
Version: 17.09.0-ce
API version: 1.32
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:42:18 2017
OS/Arch: linux/amd64
Server:
Version: 17.09.0-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:40:56 2017
OS/Arch: linux/amd64
Experimental: false
Output of Docker info:
Containers: 11
Running: 11
Paused: 0
Stopped: 0
Images: 8
Server Version: 17.09.0-ce
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 76
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-97-generic
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.695GiB
Name: egmintel-desktop
ID: VB22:IXWI:GY6D:QPM4:SPHX:HYUP:OQN7:ZM55:LLKE:P3UU:XK7F:26TH
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No swap limit support
My docker-compose version:
docker-compose version 1.16.1, build 6d1ac21
I also noticed that one of my containers is not working properly (but I can't see the error since I can't read logs) and I need to restart the Docker service so my container starts working again.
Any ideas how to solve this? Thanks!
simply remove the ~/.docker/ directory
Looks like your events.log file got corrupted. Try deleting following file
"/var/run/docker/libcontainerd/containerd/events.log"
restart the docker through init.d
Using windows Docker Desktop
Troubleshoot -> Reset to factory defaults
This fixed the issue for me.
For windows you need delete json file with 0x00 bytes
located in %USERPROFILE%\.docker\contexts folder and it's subdirs.

Docker command with build / run / etc. "too many open files"

Im installed Docker on server machine (with Ubuntu 16.04), but trying run any commands, I get this error:
"Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: too many open files"
Please, who know how solve this issue?
Docker Info:
Containers: 18
Running: 0
Paused: 0
Stopped: 18
Images: 4
Server Version: 17.03.0-ce
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 76
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-ini
containerd version: 977c511eda0925a723debdc94d09459af49d082a
runc version: a01dafd48bc1c7cc12bdb01206f9fea7dd6feb70
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-59-generic
Operating System: Ubuntu 16.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.953 GiB
Name: web.renderdeal.com
ID: LXNZ:I6HH:ZVBB:KS3V:3WCT:ADWY:C2MZ:QJ37:VZUU:EZ6T:PYWO:66WQ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: animarender
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
/Docker Info
docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 60ccb22
Built: Thu Feb 23 11:02:43 2017
OS/Arch: linux/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 60ccb22
Built: Thu Feb 23 11:02:43 2017
OS/Arch: linux/amd64
Experimental: false
/ docker version
Considering Docker status seems OK, check if the issue is on your side (as in this ticket)
Let's check on the current open files
lsof | grep "rclone" | wc -l
returns 6458
Now, Check on current ulimit
ulimit -n
returns 1024
Set that to 9000 and Check again
ulimit -n 9000 && ulimit -n
returns 9000
To make the ulimit more persistent you can either edit /etc/security/limits.conf
and add :
* soft nofile 9000 + reboot
or write it into your user's .bashrc

Resources