moby: Docker 18.03 Linux based images built using LCOW can't be deployed to registries

Description Bringing this from docker/for-win#1769, was told by @carlfischer1 that it should be reported here intead
 Hey! 😄

So I’ve narrowed this down to as small an example as I could. I created a small hello world repo here: https://github.com/artiomchi/HelloWorld

When building the app using a linux image, while running 18.03 in Windows Container mode, the image builds successfully and can be started locally. But it fails when trying to deploy it to a remote registry.

The top layer will fail to push immediately, and will enter a “Retrying” loop with an ever increasing delay. It will finally give up with an error

Steps to reproduce the issue:

I have a simple repository that I used to reproduce it on several machines.

git clone https://github.com/artiomchi/HelloWorld.git
cd HelloWorld/HelloWorld
docker build --rm -f Dockerfile-lin-alpine -t helloworld:alpine . --no-cache
docker tag helloworld:alpine artiomchi/helloworld:alpine
docker push artiomchi/helloworld:alpine

Describe the results you received: The top layer retries multiple times, until eventually gives up with the following:

PS D:\Development\HelloWorld\HelloWorld> docker push artiomchi/helloworld:alpine
The push refers to repository [docker.io/artiomchi/helloworld]
d140feb78cc6: Pushing [==================================================>]  262.7kB/262.7kB
154dc7e00f30: Layer already exists
c5de6b3aa838: Layer already exists
9dfa40a0da3b: Layer already exists
open \tmp\8797231b7737236ea8608ab3f7e63846a37cbfea164db833fbbbce80f392fceb-mount\app\HelloWorld.deps.json: The system cannot find the path specified.

Describe the results you expected: docker push should successfully push the image to the docker registry

Additional information you deem important (e.g. issue happens only occasionally): This only happens when running linux builds in Windows Container mode. When I switch docker to run in Linux Container mode (uses the Hyper-V VM), the build and publish succeed.

Output of docker version:

Client:
 Version:       18.03.0-ce-rc1
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    c160c73
 Built: Thu Feb 22 02:34:04 2018
 OS/Arch:       windows/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:      18.03.0-ce-rc1
  API version:  1.37 (minimum version 1.24)
  Go version:   go1.9.4
  Git commit:   c160c73
  Built:        Thu Feb 22 02:41:20 2018
  OS/Arch:      windows/amd64
  Experimental: true

Output of docker info:

Containers: 4
 Running: 0
 Paused: 0
 Stopped: 4
Images: 98
Server Version: 18.03.0-ce-rc1
Storage Driver: windowsfilter (windows) lcow (linux)
 Windows:
 LCOW:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslog
Swarm: inactive
Default Isolation: hyperv
Kernel Version: 10.0 16299 (16299.15.amd64fre.rs3_release.170928-1534)
Operating System: Windows 10 Pro
OSType: windows
Architecture: x86_64
CPUs: 16
Total Memory: 15.93GiB
Name: FlexLabs-Rog
ID: AOEB:4SFW:5ZHH:SEF6:BLKG:UBKZ:4ADD:RAQR:SF6T:E752:64KZ:ZVWV
Docker Root Dir: C:\ProgramData\Docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: -1
 Goroutines: 29
 System Time: 2018-03-01T19:34:01.1776121Z
 EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.): Running on Windows 10 with the 1709 Fall creator’s update

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 17 (9 by maintainers)

Most upvoted comments

I’m still experiencing this issue on Windows 10 with Docker Desktop 2.1.0.0 (Docker Engine 19.03.1) with experimental features and LCOW. Windows images push without a hitch but Linux images push very slowly and large layers just outright fail in the middle of the transfer.

I’m running 17.10.0-ee preview and it does build the linux containers. just won’t push them. was my understanding this was using LCOW since I don’t see a Hyper-V VM. Thanks for the info.

Some bug as in docker/for-win#1370

Can be reproduced with just the following dockerfile:

FROM busybox RUN echo test > test.txt

No problem to build or use the image, but pushing it to a repository fails

Bulding is ok:

docker build --platform linux --pull -t stalb/essai . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM busybox latest: Pulling from library/busybox d070b8ef96fc: Pull complete Digest: sha256:2107a35b58593c58ec5f4e8f2c4a70d195321078aebfadfbfb223a2ff4a4ed21 Status: Downloaded newer image for busybox:latest —> f6e427c148a7 Step 2/2 : RUN echo test > test.txt —> Running in d4fe92922db3 Removing intermediate container d4fe92922db3 —> 84384b7d92d4 Successfully built 84384b7d92d4 Successfully tagged stalb/essai:latest

But pushing the image fails (1st layer is ok, because its 'already on the dockerhub repository, but the 2nd layer with text.txt file fails):

docker push stalb/essai The push refers to repository [docker.io/stalb/essai] 939a6c7b33cb: Pushing [==================================================>] 262.7kB/262.7kB c5183829c43c: Layer already exists open \tmp\6d658de181bfcead8e03d0b29ab695bf9418361101aa91626ec0699b89956585-mount\test.txt: Le chemin d’accĂšs spĂ©cifiĂ© est introuvable.