artifactory do not pulling some layers of windows image - docker

I want to use artifactory with offline clients.
I had installed ws2016 and docker.
I don't have the proxy on this machine.
and when I am trying to pull image - docker start download (for example iis:nanoserver) all layers except two. Client trying to download them directly from the internet. I find the reason - because there is in manifest strong URL to Microsoft or others resources in manifest)
What will be the solution for this?
PS C:\Windows\system32> docker -l debug pull docker.artifactory.mydomain.com/microsoft/aci-helloworld:windows
windows: Pulling from microsoft/aci-helloworld
bce2fbc256ea: Retrying in 1 second
4a8c367fd46d: Retrying in 1 second
a8a90ba3a09e: Download complete
f694b71407bb: Download complete
1297730844f7: Download complete
757c0e11bc6f: Download complete
23daf900b85b: Download complete
4c4e4246add8: Download complete
739a2e484f2e: Download complete
726e0a195fd7: Download complete
8f617470c3a5: Download complete
1504687851f5: Download complete
dial tcp 23.64.230.126:443: connectex: No connection could be made because the target machine actively refused it.
docker version
Client:
Version: 17.03.1-ee-3
API version: 1.27
Go version: go1.7.5
Git commit: 3fcee33
Built: Thu Mar 30 19:31:22 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.1-ee-3
API version: 1.27 (minimum version 1.24)
Go version: go1.7.5
Git commit: 3fcee33
Built: Thu Mar 30 19:31:22 2017
OS/Arch: windows/amd64
Experimental: false
manifest.json
"layers": [
{
"mediaType": "application/vnd.docker.image.rootfs.foreign.diff.tar.gzip",
"size": 252691002,
"digest": "sha256:bce2fbc256ea437a87dadac2f69aabd25bed4f56255549090056c1131fad0277",
"urls": [
"https://go.microsoft.com/fwlink/?linkid=837858"
]
},
{
"mediaType": "application/vnd.docker.image.rootfs.foreign.diff.tar.gzip",
"size": 141758132,
"digest": "sha256:b0b5e40cb939a7befa4e01212d6f65f30022bbd04b5f15985b45ce9cfd3fcabc",
"urls": [
"https://go.microsoft.com/fwlink/?linkid=860052"
]

Found official solution with docker 17.6
Edit the daemon.json file add the follow line:
{
"allow-nondistributable-artifacts": ["myregistrydomain.com:5000"]
}
When you push images to the registries in the list, their non-distributable layers will be pushed to the registry.

Right click your installed docker desktop
click Docker engine
Add comma "," near "experimental": true**,** #comma used to seperate the line
Enter in to the new line add
"allow-nondistributable-artifacts": ["localhost.com:5000"]
Mostly local host is nothing but your public or private ip
click apply&restart

Related

Pulling arm32v7 Docker container images on Raspberry Pi 3 B +

I have a Raspberry Pi 3 B+ with Docker installed on it. I'm trying to pull the latest ARMv7 edition of the golang container image, linked below.
https://hub.docker.com/u/arm32v7/
https://hub.docker.com/r/arm32v7/golang/
When I run the docker pull command on the image, I get the generic error below.
pi#trevorpi:~ $ docker pull arm32v7/golang:latest
Pulling repository docker.io/arm32v7/golang
Tag latest not found in repository docker.io/arm32v7/golang
Here's the version of Docker I'm running:
pi#trevorpi:~ $ docker version
Client:
Version: 1.8.3
API version: 1.20
Go version: go1.4.3
Git commit: f4bf5c7
Built:
OS/Arch: linux/arm
Server:
Version: 1.8.3
API version: 1.20
Go version: go1.4.3
Git commit: f4bf5c7
Built:
OS/Arch: linux/arm
Here's the output from uname -a, which indicates it's ARMv7:
Linux trevorpi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux
Obviously, the x86 Docker image for golang doesn't work, because it's not ARM-compatible. I can pull the image, but it won't run due to processor architecture:
pi#trevorpi:~ $ docker pull golang:latest
latest: Pulling from library/golang
836de16dcbe9: Already exists
490028bf21ec: Already exists
b9aece5a7acf: Already exists
e5bf67252042: Already exists
a221240e1da3: Already exists
efcf11bc5c78: Already exists
32d2d4bbdbd3: Already exists
599e9bccee8b: Already exists
b77bfa353366: Already exists
dc799d5ef217: Already exists
cb12e793d3e1: Already exists
c984412a4f12: Already exists
Digest: sha256:ce05c9f8151cc4ff3ce508509720597d103b630aa024bcfb012107149abfa361
Status: Image is up to date for golang:latest
pi#trevorpi:~ $ docker run --rm -it golang
WARNING: Your kernel does not support memory swappiness capabilities, memory swappiness discarded.
exec format error
Error response from daemon: Cannot start container 0c04cb7f7192f2059b029637bd6306c0a4ff83299e3a20df920b3ea56339ab7a: [8] System error: exec format error
Question: I manually verified that the latest tag is valid. What do I need to do to pull this image?
Maybe you are trying to download an image not available for your system (OS or Architecture).
$ docker manifest inspect -v arm32v7/golang:latest
[
{
"Ref": "docker.io/arm32v7/golang:latest#sha256:faf19ab885f9d0779bbbd615eee610c5aedfdd203ac5fceefbd5fc8afd73a2ac",
"Descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:faf19ab885f9d0779bbbd615eee610c5aedfdd203ac5fceefbd5fc8afd73a2ac",
"size": 1795,
"platform": {
"architecture": "arm",
"os": "linux",
"variant": "v7"
}
Are you sure your raspberry uses arm v7 architecture? Unfortunately, I don't have raspberry ow my own, so I can't reproduce this problem.
Have you tried do pull with other tags than latest? Also, You could try to build this image yourself. Golang repo
Maybe try with an official repository for golang:
docker pull golang:latest
they also support your architecture:
Supported architectures: md64, arm32v6, arm32v7, arm64v8,
i386, ppc64le, s390x, windows-amd6
Maybe this is a connection/firewall issue. Can you pull from other repositories?

failed to register layer: re-exec error: exit status 1: output: ProcessUtilityVMImage [duplicate]

This question already has an answer here:
Can't pull image from docker, ProcessUtilityVMImage cannot find the path specified
(1 answer)
Closed 1 year ago.
I have a private docker registry on Windows Server 2016 Datacenter and from local machine (Windows 10 Pro) I pushed few images to it. When I try to pull image from server it starts pulling and later throws an error
failed to register layer: re-exec error: exit status 1: output: ProcessUtilityVMImage \?\C:\ProgramData\docker\windowsfilter\f9613d03a4fae39c0cebca07bc51aef2931756f5e674cda8f6b78729ba5ebac8\UtilityVM: The system cannot find the path specified.
I used following image and steps to start a registry https://hub.docker.com/r/stefanscherer/registry-windows/
I tested with hello-world image, pushed it from local machine and pulled it from server, it worked.
But, I am unable pull images like microsoft/wcf, microsoft/iis which are base images to my local built images.
Other way around, if I already have microsoft/wcf image on my server (which is base image for my locally built image), when pulling the locally built image why it goes to pull microsoft/wcf again. Is there any way I can use server's wcf image?
docker verion
Client:
Version: 17.06.2-ee-13
API version: 1.30
Go version: go1.8.7
Git commit: ac44d73
Built: Mon Jun 4 16:46:59 2018
OS/Arch: windows/amd64
Server:
Engine:
Version: 17.06.2-ee-13
API version: 1.30 (minimum version 1.24)
Go version: go1.8.7
Git commit: ac44d73
Built: Mon Jun 4 16:58:47 2018
OS/Arch: windows/amd64
Experimental: true
Following links are helpful to resolve this issue:
https://github.com/docker/for-win/issues/2119
Can't pull image from docker, ProcessUtilityVMImage cannot find the path specified

Docker push incredibly slow to google registry

I have Google Instance and a Google Docker Registry configured.
Things where working quite smoothly and suddenly when I try to push to the
registry, it became practically unusable because of the speed.
$ docker push gcr.io/<ID>/my-registry/image:44]
The push refers to a repository [gcr.io/<ID>/my-registry/image:44]
3bc2db43a686: Pushing [=======> ] 3.409MB/23.32MB
1302d8ee9a47: Layer already exists
29d71372a492: Layer already exists
And if I measure the bandwidth of the docker push I get
NetHogs version 0.8.1
PID USER PROGRAM DEV SENT RECEIVED
1521 root /usr/bin/dockerd ens4 24.183 0.458 KB/sec
But my actual connection to the internet is good enough.
$ speedtest-cli
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Google Cloud (x.x.x.x)...
Selecting best server based on latency...
Hosted by KamaTera INC (Santa Clara, CA) [10.61 km]: 20.436 ms
Testing download speed........................................
Download: 2046.49 Mbit/s
Testing upload speed..................................................
Upload: 114.68 Mbit/s
I tried restarting the docker daemon and nothing.
This are the tools I am using
$ 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
$ gcloud version
Google Cloud SDK 176.0.0
alpha 2017.10.13
beta 2017.10.13
bq 2.0.27
core 2017.10.13
gsutil 4.27
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
Any idea what could be the problem?
Use gcloud builds submit instead of docker push
Docs: https://cloud.google.com/sdk/gcloud/reference/builds/submit
I tried using docker push to get images to GCR, but it was incredibly slow and would eventually grind to a halt. I then started using GCE instances to docker push from, which was very fast. Later, I stumbled upon gcloud builds submit. It runs fast locally for me.

Modifying Docker Images Directly

i'm new to docker. I run docker "natively" from a Windows server 2016 with a Windows container, there is no intermediate VM (no docker machine) in between and no docker toolbox, so the "host" is the actual Windows Server that I run docker on.
Docker version:
PS C:> docker version
Client:
Version: 17.03.1-ee-3
API version: 1.27
Go version: go1.7.5
Git commit: 3fcee33
Built: Thu Mar 30 19:31:22 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.1-ee-3
API version: 1.27 (minimum version 1.24)
Go version: go1.7.5
Git commit: 3fcee33
Built: Thu Mar 30 19:31:22 2017
OS/Arch: windows/amd64
Experimental: false
PS C:\>
i pulled the image from docker hub. I need to replace the files inside the docker image while running and commit changes to the image.
Lets say i have Sample.java and datafile.properties inside the docker image which i pulled from docker hub.
i want to replace that with Hello.java and data.properties[ i pulled these files from github]
how would i do that in an automated way? Any advise and some examples on this would he helpful. Thanks in advance.

docker private registry change from v1 to v2 while pulling an image

There is a docker is registry v2.
An image is pushed to docker private registry. Able to see it using curl command:
$ curl -s -X GET http://<registry>:<port>/v2/<image>/tags/list
{"name":"<image>","tags":["latest"]}
However, not able to pull the image from other machines. It appears that it is trying to pull from v1 instead of v2
Pulling the above image on a windows 10 machine.
docker pull <registry>:<port>/<image>:latest
Getting the following error:
Pulling repository <registry>:<port>/<image>
Network timed out while trying to connect to
http://<registry>:<port>/v1/repositories/<image>/images.
You may want to check your internet connection or if you are behind a proxy.
Not using any proxy settings.
Here is version details
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.1-ce
API version: 1.27 (minimum version 1.12)
Go version: go1.7.5
Git commit: c6d412e
Built: Fri Mar 24 00:00:50 2017
OS/Arch: linux/amd64
Experimental: true
Could not found any docker settings for changing from v1 to v2.
How do I make it to pull from v2 / resolve the above error?
EDIT: log shows
ICMP Destination Unreachable: Destination port unreachable

Resources