0%

Build multi-arch docker image

In this article I am trying to build a multi-arch image that supports arm and amd64, then I will push it to Docker Hub.

Build docker image

Two dockfiles have different arch.

Build an arm arch

Dockfile

1
2
3
4
5
6
7
8
9
10
11
12
13
FROM tobi312/rpi-nginx@sha256:b375cd9a4511f5d7763397c5a4faa1f5c3605507db97075b12582aad2a6871b0
RUN rm -rf /usr/share/nginx/html/*
RUN apk add --no-cache \
fcgi=2.4.0-r8 \
fcgiwrap=1.1.0-r3 \
spawn-fcgi=1.6.4-r3 \
ca-certificates=20190108-r0 \
nghttp2-libs=1.35.1-r0 \
libssh2=1.8.2-r0 \
libcurl=7.64.0-r2 \
curl=7.64.0-r2 \
oniguruma=6.9.4-r0 \
jq=1.6-r0

change directory under this dockfile to build image

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
root@vmnet8cloud:~/rpi# docker build . -t vmnet8/rpi
Sending build context to Docker daemon 3.072kB
Step 1/3 : FROM tobi312/rpi-nginx@sha256:b375cd9a4511f5d7763397c5a4faa1f5c3605507db97075b12582aad2a6871b0
sha256:b375cd9a4511f5d7763397c5a4faa1f5c3605507db97075b12582aad2a6871b0: Pulling from tobi312/rpi-nginx
6e39823df636: Already exists
38dd00ade3c1: Already exists
c02057c17ddc: Already exists
e6d776bad3ac: Already exists
92ca2fd255df: Already exists
a2cfa1cf1cbb: Already exists
35e3be655ed6: Already exists
f182036f54c2: Already exists
Digest: sha256:b375cd9a4511f5d7763397c5a4faa1f5c3605507db97075b12582aad2a6871b0
Status: Downloaded newer image for tobi312/rpi-nginx@sha256:b375cd9a4511f5d7763397c5a4faa1f5c3605507db97075b12582aad2a6871b0
---> 91ed615e0b64
Step 2/3 : RUN rm -rf /usr/share/nginx/html/*
---> Running in aa2b4077aa07
Removing intermediate container aa2b4077aa07
---> 9412dc8b27c2
Step 3/3 : RUN apk add --no-cache fcgi=2.4.0-r8 fcgiwrap=1.1.0-r3 spawn-fcgi=1.6.4-r3 ca-certificates=20190108-r0 nghttp2-libs=1.35.1-r0 libssh2=1.8.2-r0 libcurl=7.64.0-r2 curl=7.64.0-r2 oniguruma=6.9.4-r0 jq=1.6-r0
---> Running in a6902c745dd5
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/armhf/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/armhf/APKINDEX.tar.gz
(1/5) Installing fcgi (2.4.0-r8)
(2/5) Installing fcgiwrap (1.1.0-r3)
Executing fcgiwrap-1.1.0-r3.pre-install
(/5) Installing oniguruma (6.9.4-r0)
(4/5) Installing jq (1.6-r0)
(5/5) Installing spawn-fcgi (1.6.4-r3)
Executing busybox-1.29.3-r10.trigger
OK: 52 MiB in 77 packages
Removing intermediate container a6902c745dd5
---> 758ef3313bac
Successfully built 758ef3313bac
Successfully tagged vmnet8/rpi:latest

Build an amd64 arch

Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM nginx:1.16.0-alpine

RUN rm -rf /usr/share/nginx/html/*
RUN apk add --no-cache \
fcgi=2.4.0-r8 \
fcgiwrap=1.1.0-r3 \
spawn-fcgi=1.6.4-r3 \
ca-certificates=20190108-r0 \
nghttp2-libs=1.35.1-r1 \
libssh2=1.9.0-r1 \
libcurl=7.64.0-r3 \
curl=7.64.0-r3 \
oniguruma=6.9.4-r0 \
jq=1.6-r0

build processing

1
2
3
4
5
6
7
8
9
10
11
root@vmnet8cloud:~/template# docker build . -t vmnet8/planet
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM nginx:1.16.0-alpine
---> 05edf438c0e4
Step 2/3 : RUN rm -rf /usr/share/nginx/html/*
---> Using cache
---> f7441287619e
Step 3/3 : RUN apk add --no-cache fcgi=2.4.0-r8 fcgiwrap=1.1.0-r3 spawn-fcgi=1.6.4-r3 ca-certificates=20190108-r0 nghttp2-libs=1.35.1-r1 libssh2=1.9.0-r1 libcurl=7.64.0-r3 curl=7.64.0-r3 oniguruma=6.9.4-r0 jq=1.6-r0
---> Using cache
---> 72c50c12788d
Successfully built 72c50c12788d

change image name

I am not satisfied with my new image name, so I rename it.

1
2
3
4
5
6
7
8
root@vmnet8cloud:~/rpi# docker tag vmnet8/rpi vmnet8/base-nginx:rpi
root@vmnet8cloud:~/rpi# docker tag vmnet8/planet vmnet8/base-nginx:x86
root@vmnet8cloud:~/rpi# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
vmnet8/base-nginx rpi 758ef3313bac 9 hours ago 52MB
vmnet8/rpi latest 758ef3313bac 9 hours ago 52MB
vmnet8/planet latest 72c50c12788d 9 hours ago 20.4MB
treehouses/bettercap first fa1faf86b2e9 5 days ago 35.9MB

push image to my dockerhub repo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
root@vmnet8cloud:~/rpi# docker push  vmnet8/base-nginx:rpi
The push refers to repository [docker.io/vmnet8/base-nginx]
06f60bd1a60b: Mounted from vmnet8/rpi
2d7044011d61: Mounted from vmnet8/rpi
7772294ad95b: Mounted from vmnet8/rpi
ca20d2ade963: Mounted from vmnet8/rpi
0c8b16ac3ec0: Mounted from vmnet8/rpi
6ff0e3daf858: Mounted from vmnet8/rpi
4bc006337f97: Mounted from vmnet8/rpi
9c66fd3856dc: Mounted from vmnet8/rpi
77ffeb9e9842: Mounted from vmnet8/rpi
rpi: digest: sha256:ced17c99328babcabff78c78db75c3426c47a55aa1fec8bcdb554134327f7fff size: 2205
root@vmnet8cloud:~/rpi# docker push vmnet8/base-nginx:x86
The push refers to repository [docker.io/vmnet8/base-nginx]
dc696a4b831b: Mounted from vmnet8/planet
05652609bfdb: Mounted from vmnet8/planet
1cd1ec9f681c: Mounted from vmnet8/planet
77ffeb9e9842: Layer already exists
x86: digest: sha256:40fc08ff08e250a9022242cab5f68042c98b6e1f09551fe4dfca3b04dfcc8533 size: 1157

using manifest to create multi-arch image

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
root@vmnet8cloud:~/rpi# docker manifest create vmnet8/base-nginx:latest vmnet8/base-nginx:x86 vmnet8/base-nginx:rpi
Created manifest list docker.io/vmnet8/base-nginx:latest


root@vmnet8cloud:~/rpi# docker manifest inspect vmnet8/base-nginx
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 2205,
"digest": "sha256:ced17c99328babcabff78c78db75c3426c47a55aa1fec8bcdb554134327f7fff",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1157,
"digest": "sha256:40fc08ff08e250a9022242cab5f68042c98b6e1f09551fe4dfca3b04dfcc8533",
"platform": {
"architecture": "arm",
"os": "linux"
}
}
]
}
root@vmnet8cloud:~/rpi# docker manifest inspect vmnet8/base-nginx
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 2205,
"digest": "sha256:ced17c99328babcabff78c78db75c3426c47a55aa1fec8bcdb554134327f7fff",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1157,
"digest": "sha256:40fc08ff08e250a9022242cab5f68042c98b6e1f09551fe4dfca3b04dfcc8533",
"platform": {
"architecture": "arm",
"os": "linux"
}
}
]
}
root@vmnet8cloud:~/template# docker manifest push vmnet8/base-nginx:latest
sha256:9d646d372f76466948ee660cecd0100bc56dc0fe8e73e8e5294d7873ed09519c

Testing

I created an arm arch image and amd64 image. I want to test these images to see if they work well

On my rpi, I test multi-arch if it works

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
pi@treehouses:~ $ docker pull vmnet8/base-nginx
Using default tag: latest
latest: Pulling from vmnet8/base-nginx
6e39823df636: Already exists
44e31f35ea82: Pull complete
42d1b29a4b84: Pull complete
5f669d9949cf: Pull complete
Digest: sha256:9d646d372f76466948ee660cecd0100bc56dc0fe8e73e8e5294d7873ed09519c
Status: Downloaded newer image for vmnet8/base-nginx:latest
docker.io/vmnet8/base-nginx:latest
pi@treehouses:~ $ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
vmnet8/base-nginx latest 72c50c12788d 12 hours ago 20.4MB
pi@treehouses:~ $ docker inspect 72c50c12788d
[
{
"Id": "sha256:72c50c12788d9f57b40a19b83e95a9ca1d5ede10508a6b4d9db89cac67488046",
"RepoTags": [
"vmnet8/base-nginx:latest"
],
"RepoDigests": [
"vmnet8/base-nginx@sha256:9d646d372f76466948ee660cecd0100bc56dc0fe8e73e8e5294d7873ed09519c"
],
"Parent": "",
"Comment": "",
"Created": "2019-12-09T20:16:55.461030258Z",
"Container": "c6f35ed83a7ef7abb9b25b5e437156de03d18a2a1d300a2cb87e73a096ec5307",
"ContainerConfig": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.16.0",
"NJS_VERSION=0.3.1",
"PKG_RELEASE=1"
],
"Cmd": [
"/bin/sh",
"-c",
"apk add --no-cache fcgi=2.4.0-r8 fcgiwrap=1.1.0-r3 spawn-fcgi=1.6.4-r3 ca-certificates=20190108-r0 nghttp2-libs=1.35.1-r1 libssh2=1.9.0-r1 libcurl=7.64.0-r3 curl=7.64.0-r3 oniguruma=6.9.4-r0 jq=1.6-r0"
],
"Image": "sha256:f7441287619ec6a39d018a9c8a7612c719ef7f214c59a701c86734bc88d03865",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGTERM"
},
"DockerVersion": "19.03.5",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.16.0",
"NJS_VERSION=0.3.1",
"PKG_RELEASE=1"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"ArgsEscaped": true,
"Image": "sha256:f7441287619ec6a39d018a9c8a7612c719ef7f214c59a701c86734bc88d03865",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGTERM"
},
"Architecture": "arm",
"Os": "linux",
"Size": 20383390,
"VirtualSize": 20383390,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/060e14f6a1d2061d067463c07859a8d771d0e062bb830765109873f70cb6069a/diff:/var/lib/docker/overlay2/30dbadfa6d758ac43c176e04ed6ebd5a5b1774068e098823c37457904cf07f9d/diff:/var/lib/docker/overlay2/decf25251786958f57e943f099fa7095fa83a5ddbca3c89130b19373a464748f/diff",
"MergedDir": "/var/lib/docker/overlay2/58b35d0db3363fcd6dda91aef93c198be97e0f0f1cdfe32be0077b714b1e2968/merged",
"UpperDir": "/var/lib/docker/overlay2/58b35d0db3363fcd6dda91aef93c198be97e0f0f1cdfe32be0077b714b1e2968/diff",
"WorkDir": "/var/lib/docker/overlay2/58b35d0db3363fcd6dda91aef93c198be97e0f0f1cdfe32be0077b714b1e2968/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:77ffeb9e98427bfbcc3448a22e354cf57e30de34d6c516365659b851f679b1b4",
"sha256:1cd1ec9f681cc950d0100535cbd8f3e939c50ab9f9b2d14092992c5465a9f1da",
"sha256:05652609bfdb21400e2e13d494475a2e79f7427288c60d20db6756f14de59f5d",
"sha256:dc696a4b831ba0c0096808ba0fc072fe5927fe3b2f4189af12adf436be364f79"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]

it shows pull arm archtecture from dockhub.

1
2
pi@treehouses:~ $ docker run -d -p 20001:80 vmnet8/base-nginx 
8016c0ea58895053be07bc13c50a08dbe85cd01524eca608855e80b2bcffddbf

try other image

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pi@treehouses:~ $ docker pull vmnet8/base-nginx:rpi
rpi: Pulling from vmnet8/base-nginx
6e39823df636: Already exists
38dd00ade3c1: Already exists
c02057c17ddc: Already exists
e6d776bad3ac: Already exists
92ca2fd255df: Already exists
a2cfa1cf1cbb: Already exists
35e3be655ed6: Already exists
f182036f54c2: Already exists
ebbf6799aa99: Pull complete
Digest: sha256:ced17c99328babcabff78c78db75c3426c47a55aa1fec8bcdb554134327f7fff
Status: Downloaded newer image for vmnet8/base-nginx:rpi
docker.io/vmnet8/base-nginx:rpi
pi@treehouses:~ $ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
vmnet8/base-nginx rpi 758ef3313bac 12 hours ago 52MB
vmnet8/base-nginx latest 72c50c12788d 12 hours ago 20.4MB
pi@treehouses:~ $ docker run -d -p 20002:80 vmnet8/base-nginx:rpi
8d041aecd3937332821e569e74b6744b8d1bd63f2c3b99ea7e410819b81fec0c

run this image
it shows 403 error

test on vagrant treehouse/cli

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
vagrant@cli:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
rabbitmq 3-management 8bdbe10dc73e 5 weeks ago 180MB
treehouses/planet latest a67c7ab86add 7 weeks ago 37.6MB
treehouses/planet local a67c7ab86add 7 weeks ago 37.6MB
treehouses/planet db-init fab533186a58 7 weeks ago 98.6MB
treehouses/planet db-init-local fab533186a58 7 weeks ago 98.6MB
treehouses/couchdb 2.3.1 7f64c92d91fb 3 months ago 201MB
vagrant@cli:~$ docker pull vmnet8/base-nginx
Using default tag: latest
latest: Pulling from vmnet8/base-nginx
6e39823df636: Pull complete
38dd00ade3c1: Pull complete
c02057c17ddc: Pull complete
e6d776bad3ac: Pull complete
92ca2fd255df: Pull complete
a2cfa1cf1cbb: Pull complete
35e3be655ed6: Pull complete
f182036f54c2: Pull complete
ebbf6799aa99: Pull complete
Digest: sha256:9d646d372f76466948ee660cecd0100bc56dc0fe8e73e8e5294d7873ed09519c
Status: Downloaded newer image for vmnet8/base-nginx:latest
docker.io/vmnet8/base-nginx:latest
vagrant@cli:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
vmnet8/base-nginx latest 758ef3313bac 28 hours ago 52MB
rabbitmq 3-management 8bdbe10dc73e 5 weeks ago 180MB
treehouses/planet latest a67c7ab86add 7 weeks ago 37.6MB
treehouses/planet local a67c7ab86add 7 weeks ago 37.6MB
treehouses/planet db-init fab533186a58 7 weeks ago 98.6MB
treehouses/planet db-init-local fab533186a58 7 weeks ago 98.6MB
treehouses/couchdb 2.3.1 7f64c92d91fb 3 months ago 201MB
vagrant@cli:~$ docker image inspect vmnet8/base-nginx
[
{
"Id": "sha256:758ef3313bac7fa1fda2b08abc68fa712ae778fdaa65ef5f561e75f346e921f3",
"RepoTags": [
"vmnet8/base-nginx:latest"
],
"RepoDigests": [
"vmnet8/base-nginx@sha256:9d646d372f76466948ee660cecd0100bc56dc0fe8e73e8e5294d7873ed09519c"
],
"Parent": "",
"Comment": "",
"Created": "2019-12-09T20:30:58.028636649Z",
"Container": "a6902c745dd55b102fbc0fec29545b88b0b5418b81a3aa463fe6892894bae52a",
"ContainerConfig": {
"Hostname": "bf6e13d66684",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"443/tcp": {},
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"UDEV=off",
"NGINX_VERSION=1.14"
],
"Cmd": [
"/bin/sh",
"-c",
"apk add --no-cache fcgi=2.4.0-r8 fcgiwrap=1.1.0-r3 spawn-fcgi=1.6.4-r3 ca-certificates=20190108-r0 nghttp2-libs=1.35.1-r0 libssh2=1.8.2-r0 libcurl=7.64.0-r2 curl=7.64.0-r2 oniguruma=6.9.4-r0 jq=1.6-r0"
],
"Image": "sha256:9412dc8b27c29e6114610c6abd884bb8d13b0396f800c9fed39eef921483e78c",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": [],
"Labels": {
"io.balena.architecture": "rpi",
"io.balena.device-type": "raspberry-pi",
"io.balena.qemu.version": "4.0.0+balena-arm",
"org.opencontainers.image.authors": "Tobias Hargesheimer <docker@ison.ws>",
"org.opencontainers.image.description": "AlpineLinux with NGINX on arm arch",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.source": "https://github.com/Tob1asDocker/rpi-nginx",
"org.opencontainers.image.title": "NGINX",
"org.opencontainers.image.url": "https://hub.docker.com/r/tobi312/rpi-nginx/"
}
},
"DockerVersion": "19.03.5",
"Author": "",
"Config": {
"Hostname": "bf6e13d66684",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"443/tcp": {},
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"UDEV=off",
"NGINX_VERSION=1.14"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"ArgsEscaped": true,
"Image": "sha256:9412dc8b27c29e6114610c6abd884bb8d13b0396f800c9fed39eef921483e78c",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/usr/bin/entry.sh"
],
"OnBuild": [],
"Labels": {
"io.balena.architecture": "rpi",
"io.balena.device-type": "raspberry-pi",
"io.balena.qemu.version": "4.0.0+balena-arm",
"org.opencontainers.image.authors": "Tobias Hargesheimer <docker@ison.ws>",
"org.opencontainers.image.description": "AlpineLinux with NGINX on arm arch",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.source": "https://github.com/Tob1asDocker/rpi-nginx",
"org.opencontainers.image.title": "NGINX",
"org.opencontainers.image.url": "https://hub.docker.com/r/tobi312/rpi-nginx/"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 52043162,
"VirtualSize": 52043162,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/d65700181956c296d4fdad06b0eaf044450f42948c12ffe0c98369399f3a6171/diff:/var/lib/docker/overlay2/a7fb82cc01d1930806d1c39d1063f4afe95b85bd14acaf4ba5ef25e375acfcaa/diff:/var/lib/docker/overlay2/be79231a2717e7b566eb93f73e098c923310d519ba0df738e9b129e49d68309d/diff:/var/lib/docker/overlay2/85a0df8e1aee0b5a820eaea35ad4478decb1f612f76f89a58e811eb1c8cb45c5/diff:/var/lib/docker/overlay2/74bd5ba7975f879d629da5c5be5ef941598dfacc6bb696d9ac9b1e718bf43460/diff:/var/lib/docker/overlay2/723a132236875c0bbead39340a897bca76a1958e0da321bd4d5933fad0aacd92/diff:/var/lib/docker/overlay2/c6647e80ba872b63745bd7134df3ad5bd563c9723377d1d9db60bb42e14cd35c/diff:/var/lib/docker/overlay2/1bee8c0cb8bf6ace619c5c54016a0f332bf83830e3f12e401f52f88e058a7be9/diff",
"MergedDir": "/var/lib/docker/overlay2/b18c2588c00f54836210ae958ad1f10685db2304eeb97f501dbf9aeb9545084f/merged",
"UpperDir": "/var/lib/docker/overlay2/b18c2588c00f54836210ae958ad1f10685db2304eeb97f501dbf9aeb9545084f/diff",
"WorkDir": "/var/lib/docker/overlay2/b18c2588c00f54836210ae958ad1f10685db2304eeb97f501dbf9aeb9545084f/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:77ffeb9e98427bfbcc3448a22e354cf57e30de34d6c516365659b851f679b1b4",
"sha256:9c66fd3856dc997fc3aedba30803f1bd69651be0cda1757d5db959f37a7fe491",
"sha256:4bc006337f970a3226b3ab7b5d3692b90d9bb7cd18746c29be269d6ed75f347d",
"sha256:6ff0e3daf8589cf6b0e6f254f3f7d44d0955810d147bd4f87b150d794d6aa681",
"sha256:0c8b16ac3ec05312e8fc393f53fe14840a0c8408c960f75297b46ad252f17d8a",
"sha256:ca20d2ade963c426acdb97ca81df2d1b0181fc29f1b89745d582874e64c9087f",
"sha256:7772294ad95bdaa10c84d306f03bbcc74bede2cc04393114f7c821c0813a8828",
"sha256:2d7044011d61cb9fa0a42c0741341323240bb6c1ccb4741afacbb0bbdaaa3dcb",
"sha256:06f60bd1a60b1ebeebb9d569809e0282ff9ccb7a1ea235c35e66e618dd993b94"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]

docker pull the amd64 as latest version.

run this image

1
2
3
4
5
6
7
8
9
10
vagrant@cli:~$ docker run -d -p 20003:80  vmnet8/base-nginx
3a0dd81e2b75c5cf34d33cd41308f66049b072f01543bc079bfaed6246d20cfd
vagrant@cli:~$ curl localhost:20003
curl: (7) Failed to connect to localhost port 20003: Connection refused
vagrant@cli:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a0dd81e2b75 vmnet8/base-nginx "/usr/bin/entry.sh n…" 17 seconds ago Exited (1) 15 seconds ago confident_poincare
cb31b79eff78 vmnet8/base-nginx "/usr/bin/entry.sh n…" 5 hours ago Exited (1) 5 hours ago stoic_williamson
a84339e656b4 rabbitmq:3-management "docker-entrypoint.s…" 5 weeks ago Exited (255) 5 hours ago 4369/tcp, 5671-5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:8080->15672/tcp some-rabbit
6b2ff2ae5528 treehouses/couchdb:2.3.1 "tini -- /docker-ent…" 6 weeks ago Exited (255) 5 hours ago 4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp vmnet8

it shows this docker image failed to run. I build this image on Pi, which is the reason failed.

build image on x86.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
vagrant@cli:~/newbase$ docker image build -t vmnet8/base-nginx:x86new .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM nginx:1.16.0-alpine
1.16.0-alpine: Pulling from library/nginx
e7c96db7181b: Already exists
8985e402e050: Already exists
Digest: sha256:270bea203d2fc3743fb9ce0193325e188b7e6233043487e3d3cf117ea4d3f337
Status: Downloaded newer image for nginx:1.16.0-alpine
---> ef04b00b089d
Step 2/3 : RUN rm -rf /usr/share/nginx/html/*
---> Running in 26a738b05d6b
Removing intermediate container 26a738b05d6b
---> 1a3fa7c937d7
Step 3/3 : RUN apk add --no-cache fcgi=2.4.0-r8 fcgiwrap=1.1.0-r3 spawn-fcgi=1.6.4-r3 ca-certificates=20190108-r0 nghttp2-libs=1.35.1-r1 libssh2=1.9.0-r1 libcurl=7.64.0-r3 curl=7.64.0-r3 oniguruma=6.9.4-r0 jq=1.6-r0
---> Running in 487a73601a7c
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
(1/10) Installing ca-certificates (20190108-r0)
(2/10) Installing nghttp2-libs (1.35.1-r1)
(3/10) Installing libssh2 (1.9.0-r1)
(4/10) Installing libcurl (7.64.0-r3)
(5/10) Installing curl (7.64.0-r3)
(6/10) Installing fcgi (2.4.0-r8)
(7/10) Installing fcgiwrap (1.1.0-r3)
Executing fcgiwrap-1.1.0-r3.pre-install
(8/10) Installing oniguruma (6.9.4-r0)
(9/10) Installing jq (1.6-r0)
(10/10) Installing spawn-fcgi (1.6.4-r3)
Executing busybox-1.29.3-r10.trigger
Executing ca-certificates-20190108-r0.trigger
OK: 30 MiB in 47 packages
Removing intermediate container 487a73601a7c
---> d8aec7e71b73
Successfully built d8aec7e71b73
Successfully tagged vmnet8/base-nginx:x86new
vagrant@cli:~/newbase$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
vmnet8/base-nginx x86new d8aec7e71b73 14 seconds ago 23.5MB
vmnet8/base-nginx latest 758ef3313bac 33 hours ago 52MB
rabbitmq 3-management 8bdbe10dc73e 5 weeks ago 180MB
treehouses/planet latest a67c7ab86add 7 weeks ago 37.6MB
treehouses/planet local a67c7ab86add 7 weeks ago 37.6MB
treehouses/planet db-init fab533186a58 7 weeks ago 98.6MB
treehouses/planet db-init-local fab533186a58 7 weeks ago 98.6MB
treehouses/couchdb 2.3.1 7f64c92d91fb 3 months ago 201MB
nginx 1.16.0-alpine ef04b00b089d 7 months ago 20.4MB
vagrant@cli:~/newbase$ docker image inspect vmnet8/base-nginx:x86new
[
{
"Id": "sha256:d8aec7e71b735ce78ea6e30fa22272c29206d064302b04b5265ba7abfa60250a",
"RepoTags": [
"vmnet8/base-nginx:x86new"
],
"RepoDigests": [],
"Parent": "sha256:1a3fa7c937d7f6dfa6e1353bc404f2bdecbc650de6ee68274e512dbf98698d5c",
"Comment": "",
"Created": "2019-12-11T05:41:23.768015601Z",
"Container": "487a73601a7c8890adb98c479a2b711e04b5d148b3bc8d90e5ee741034a08971",
"ContainerConfig": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.16.0",
"NJS_VERSION=0.3.1",
"PKG_RELEASE=1"
],
"Cmd": [
"/bin/sh",
"-c",
"apk add --no-cache fcgi=2.4.0-r8 fcgiwrap=1.1.0-r3 spawn-fcgi=1.6.4-r3 ca-certificates=20190108-r0 nghttp2-libs=1.35.1-r1 libssh2=1.9.0-r1 libcurl=7.64.0-r3 curl=7.64.0-r3 oniguruma=6.9.4-r0 jq=1.6-r0"
],
"Image": "sha256:1a3fa7c937d7f6dfa6e1353bc404f2bdecbc650de6ee68274e512dbf98698d5c",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGTERM"
},
"DockerVersion": "19.03.3",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.16.0",
"NJS_VERSION=0.3.1",
"PKG_RELEASE=1"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"ArgsEscaped": true,
"Image": "sha256:1a3fa7c937d7f6dfa6e1353bc404f2bdecbc650de6ee68274e512dbf98698d5c",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGTERM"
},
"Architecture": "amd64",
"Os": "linux",
"Size": 23454243,
"VirtualSize": 23454243,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/5a707ebb56c473f0b857d9f3ba70210ec9e599e2c1dcff32091ff9609e97fc40/diff:/var/lib/docker/overlay2/dc6895345b17265c1e0d24dfd5e54755dd564c41f31e8e43cc53ecfa559aabdf/diff:/var/lib/docker/overlay2/75e6526fd72d6193688bb1d4f9b3eea897e2e3fc0467f1ff39e4ef94e4a9ee61/diff",
"MergedDir": "/var/lib/docker/overlay2/4c4adc9af1f46fcb4bcf1b0d90715b31302dc6b1861d34ea85191d3bd59b5fa9/merged",
"UpperDir": "/var/lib/docker/overlay2/4c4adc9af1f46fcb4bcf1b0d90715b31302dc6b1861d34ea85191d3bd59b5fa9/diff",
"WorkDir": "/var/lib/docker/overlay2/4c4adc9af1f46fcb4bcf1b0d90715b31302dc6b1861d34ea85191d3bd59b5fa9/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:f1b5933fe4b5f49bbe8258745cf396afe07e625bdab3168e364daf7c956b6b81",
"sha256:2bdf88b2699da3549a9cbc76f9b6ee058cc1f9d232fba48dda107478abfc694b",
"sha256:cc2d7d10b40de1e2253f628b1881b4e27998b82ba38f8182f4773144a30c7ca0",
"sha256:6f9350f71e829ee3a008387295156dd216e126c2248b0ce9e72a6dfdb599a6ac"
]
},
"Metadata": {
"LastTagTime": "2019-12-11T05:41:23.967401201Z"
}
}
]

I pushed this image to dockerhub

1
2
3
4
5
6
7
vagrant@cli:~/newbase$ docker push vmnet8/base-nginx:x86new
The push refers to repository [docker.io/vmnet8/base-nginx]
6f9350f71e82: Pushed
cc2d7d10b40d: Pushed
2bdf88b2699d: Mounted from library/nginx
f1b5933fe4b5: Mounted from library/nginx
x86new: digest: sha256:ec6b9bd2bdac454ab43080c163ba9e06119e0a075c5f433cbcd481398c88a013 size: 1157

I try to build multi-arch image

1
2
vagrant@cli:~/newbase$ docker manifest create vmnet8/base-nginx:latest vmnet8/base-nginx:rpi vmnet8/base-nginx:x86 vmnet8/base-nginx:x86new 
Created manifest list docker.io/vmnet8/base-nginx:latest

note: before manifest create, I need to

1
vim /home/vagrant/.docker/config.json

add

1
"experimental": "enabled"

after manifest created, I inspect it

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
vagrant@cli:~/newbase$ docker manifest inspect vmnet8/base-nginx
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 2205,
"digest": "sha256:ced17c99328babcabff78c78db75c3426c47a55aa1fec8bcdb554134327f7fff",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1157,
"digest": "sha256:40fc08ff08e250a9022242cab5f68042c98b6e1f09551fe4dfca3b04dfcc8533",
"platform": {
"architecture": "arm",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1157,
"digest": "sha256:ec6b9bd2bdac454ab43080c163ba9e06119e0a075c5f433cbcd481398c88a013",
"platform": {
"architecture": "amd64",
"os": "linux"
}
}
]
}

then push this manifest list to dockerhub

1
2
vagrant@cli:~/newbase$ docker manifest push vmnet8/base-nginx:latest
sha256:49c78057a124c4b05f90028d3d322c39e4f4b76ee2be173e6969207f7887cc77

I am going to run imaged which is created on vagrant to see if it works

1
2
3
4
5
6
7
8
9
10
vagrant@cli:~/newbase$ docker run -d -p 20003:80 vmnet8/base-nginx:x86new
9ab8b587f00d2d5df112a12acff0f1bb43ec5a99880c20566d05be83bfb81eaa
vagrant@cli:~/newbase$ curl localhost:20003
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.16.0</center>
</body>
</html>

it works!

I try to use multi-arch tag to pull docker image from dockerhub

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
vagrant@cli:~$ docker pull vmnet8/base-nginx
Using default tag: latest
latest: Pulling from vmnet8/base-nginx
6e39823df636: Pull complete
38dd00ade3c1: Pull complete
c02057c17ddc: Pull complete
e6d776bad3ac: Pull complete
92ca2fd255df: Pull complete
a2cfa1cf1cbb: Pull complete
35e3be655ed6: Pull complete
f182036f54c2: Pull complete
ebbf6799aa99: Pull complete
Digest: sha256:49c78057a124c4b05f90028d3d322c39e4f4b76ee2be173e6969207f7887cc77
Status: Downloaded newer image for vmnet8/base-nginx:latest
docker.io/vmnet8/base-nginx:latest
vagrant@cli:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
vmnet8/base-nginx latest 758ef3313bac 34 hours ago 52MB
rabbitmq 3-management 8bdbe10dc73e 5 weeks ago 180MB
treehouses/planet latest a67c7ab86add 7 weeks ago 37.6MB
treehouses/planet local a67c7ab86add 7 weeks ago 37.6MB
treehouses/planet db-init fab533186a58 7 weeks ago 98.6MB
treehouses/planet db-init-local fab533186a58 7 weeks ago 98.6MB
treehouses/couchdb 2.3.1 7f64c92d91fb 3 months ago 201MB
nginx 1.16.0-alpine ef04b00b089d 7 months ago 20.4MB
vagrant@cli:~$ docker run -d -p 20004:80 vmnet8/base-nginx
a89bcd5de4cc0f891df5a07d86d0a0424f72c307924ed814a87fb84110441a13
vagrant@cli:~$ curl localhost:20004
curl: (7) Failed to connect to localhost port 20004: Connection refused
vagrant@cli:~$ docker image inspect vmnet8/base-nginx
[
{
"Id": "sha256:758ef3313bac7fa1fda2b08abc68fa712ae778fdaa65ef5f561e75f346e921f3",
"RepoTags": [
"vmnet8/base-nginx:latest"
],
"RepoDigests": [
"vmnet8/base-nginx@sha256:49c78057a124c4b05f90028d3d322c39e4f4b76ee2be173e6969207f7887cc77"
],
"Parent": "",
"Comment": "",
"Created": "2019-12-09T20:30:58.028636649Z",
"Container": "a6902c745dd55b102fbc0fec29545b88b0b5418b81a3aa463fe6892894bae52a",
"ContainerConfig": {
"Hostname": "bf6e13d66684",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"443/tcp": {},
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"UDEV=off",
"NGINX_VERSION=1.14"
],
"Cmd": [
"/bin/sh",
"-c",
"apk add --no-cache fcgi=2.4.0-r8 fcgiwrap=1.1.0-r3 spawn-fcgi=1.6.4-r3 ca-certificates=20190108-r0 nghttp2-libs=1.35.1-r0 libssh2=1.8.2-r0 libcurl=7.64.0-r2 curl=7.64.0-r2 oniguruma=6.9.4-r0 jq=1.6-r0"
],
"Image": "sha256:9412dc8b27c29e6114610c6abd884bb8d13b0396f800c9fed39eef921483e78c",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": [],
"Labels": {
"io.balena.architecture": "rpi",
"io.balena.device-type": "raspberry-pi",
"io.balena.qemu.version": "4.0.0+balena-arm",
"org.opencontainers.image.authors": "Tobias Hargesheimer <docker@ison.ws>",
"org.opencontainers.image.description": "AlpineLinux with NGINX on arm arch",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.source": "https://github.com/Tob1asDocker/rpi-nginx",
"org.opencontainers.image.title": "NGINX",
"org.opencontainers.image.url": "https://hub.docker.com/r/tobi312/rpi-nginx/"
}
},
"DockerVersion": "19.03.5",
"Author": "",
"Config": {
"Hostname": "bf6e13d66684",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"443/tcp": {},
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"UDEV=off",
"NGINX_VERSION=1.14"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"ArgsEscaped": true,
"Image": "sha256:9412dc8b27c29e6114610c6abd884bb8d13b0396f800c9fed39eef921483e78c",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/usr/bin/entry.sh"
],
"OnBuild": [],
"Labels": {
"io.balena.architecture": "rpi",
"io.balena.device-type": "raspberry-pi",
"io.balena.qemu.version": "4.0.0+balena-arm",
"org.opencontainers.image.authors": "Tobias Hargesheimer <docker@ison.ws>",
"org.opencontainers.image.description": "AlpineLinux with NGINX on arm arch",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.source": "https://github.com/Tob1asDocker/rpi-nginx",
"org.opencontainers.image.title": "NGINX",
"org.opencontainers.image.url": "https://hub.docker.com/r/tobi312/rpi-nginx/"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 52043162,
"VirtualSize": 52043162,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/70cc3e3fca1507e7c9211d22d66265395f885288b1d399fd003514537556386b/diff:/var/lib/docker/overlay2/ab42b343ec4b7c5aa9e0ba0f481ace9ae691ad10afdf36f1c314b230342f9924/diff:/var/lib/docker/overlay2/7e603a7ebe90bb63e84dd3501b14ba46c0616240f7c52aaa47197b9e3c804f33/diff:/var/lib/docker/overlay2/b8dd6469e761a22a9dfe53b5289a90b779b4fbdf26fcb1dd26756611d81a64ef/diff:/var/lib/docker/overlay2/3fc0c51f817104f7fca2a82f0802196eb6a57a8cf4decc787c52b99fd54f4b7c/diff:/var/lib/docker/overlay2/b89a682e4c598baceee669bf3fdefc299975da996e6d0013a5090c301aeae075/diff:/var/lib/docker/overlay2/bf6fd4d2a150b622243975d715f0e33e556071b13c6484fe7fe5917b08b71481/diff:/var/lib/docker/overlay2/fd3f10fb826ce429ce564d9df304dd67ef3ddb51ad6f8c25997d56db45705e5c/diff",
"MergedDir": "/var/lib/docker/overlay2/7fde1119a0359c349ce4626798034f5bfe595f5137996b86d7604e9f0547f4ee/merged",
"UpperDir": "/var/lib/docker/overlay2/7fde1119a0359c349ce4626798034f5bfe595f5137996b86d7604e9f0547f4ee/diff",
"WorkDir": "/var/lib/docker/overlay2/7fde1119a0359c349ce4626798034f5bfe595f5137996b86d7604e9f0547f4ee/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:77ffeb9e98427bfbcc3448a22e354cf57e30de34d6c516365659b851f679b1b4",
"sha256:9c66fd3856dc997fc3aedba30803f1bd69651be0cda1757d5db959f37a7fe491",
"sha256:4bc006337f970a3226b3ab7b5d3692b90d9bb7cd18746c29be269d6ed75f347d",
"sha256:6ff0e3daf8589cf6b0e6f254f3f7d44d0955810d147bd4f87b150d794d6aa681",
"sha256:0c8b16ac3ec05312e8fc393f53fe14840a0c8408c960f75297b46ad252f17d8a",
"sha256:ca20d2ade963c426acdb97ca81df2d1b0181fc29f1b89745d582874e64c9087f",
"sha256:7772294ad95bdaa10c84d306f03bbcc74bede2cc04393114f7c821c0813a8828",
"sha256:2d7044011d61cb9fa0a42c0741341323240bb6c1ccb4741afacbb0bbdaaa3dcb",
"sha256:06f60bd1a60b1ebeebb9d569809e0282ff9ccb7a1ea235c35e66e618dd993b94"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]

it still failed, but I don’t know which tag this image is