Les images de conteneurs
Architecture et implementations sous Linux
Our Services
Mais, au fait C'est quOi un Container ?
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another

Et, Puis arriva…

Dockerfile
Docker Image
Docker Container

| Instruction(s) | Affect |
|---|---|
| from | La base de l'image |
| add, copy* | Le système de fichier |
| run* | L'exécution d'une commande |
| env, arg, workdir, user, shell, stopsignal | La construction et l'execution de l'image |
| maintainer, label | Les Métadonnées de l'image |
| expose, volume | Le montage des systèmes de fichier et le réseau |
| arg, cmd, entrypoint, healthcheck | Le processus de l'image |
Dockerfile
IMAGE

est donc composée de :
D'une autre image
D'un système de fichier
D'informations sur : réseau et volumes, utilisateurs, exécution, variables d'environnements ...
De métadonnées
On parle Bien de Docker ?

Container Spec
Runtime Spec
Distribution Spec

Mais de...





IMG


Images
Runtimes




L'intérieur d'une image
$ docker pull alpine@sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d
docker.io/library/alpine@sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d: Pulling from library/alpine
Digest: sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d
Status: Image is up to date for alpine@sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d
docker.io/library/alpine@sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d
# Attention docker version >= v25 !
$ docker save -o alpine.tar alpine@sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d
$ mkdir alpine
$ tar -xvf alpine.tar -C ./alpine
$ cd alpine
$ tree
.
├── blobs
│ └── sha256
│ ├── 309ff318b44b4f2af442a37a269a93ce6907d277d2c168d3160f36cc802f8838
│ ├── 63ca1fbb43ae5034640e5e6cb3e083e05c290072c5366fcaa9d62435a4cced85
│ ├── 6ad8fd5c38430e1ab05f033c689994934a216c1a7481aeb44de1239d7ca82f77
│ └── 91ef0af61f39ece4d6710e465df5ed6ca12112358344fd51ae6a3b886634148b
├── index.json
├── manifest.json
└── oci-layoutRécupération et extraction de l'image
$ jq . index.json
$ ls "blobs/$(jq -r '.manifests[0].digest| sub(":"; "/")' index.json)"
blobs/sha256/309ff318b44b4f2af442a37a269a93ce6907d277d2c168d3160f36cc802f8838
$ DIGEST_SHA=$(jq -r '.manifests[0].digest|ltrimstr("sha256:")' index.json)
$ echo "$DIGEST_SHA blobs/$DIGEST_SHA" | sha256sum --check
blobs/sha256/309ff318b44b4f2af442a37a269a93ce6907d277d2c168d3160f36cc802f8838: Réussi{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:309ff318b44b4f2af442a37a269a93ce6907d277d2c168d3160f36cc802f8838",
"size": 401
}
]
}
Le fichier index.json
$ MANIFEST="blobs/$(jq -r '.manifests[0].digest| sub(":"; "/")' index.json)"
$ jq . "$MANIFEST"
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:91ef0af61f39ece4d6710e465df5ed6ca12112358344fd51ae6a3b886634148b",
"size": 1471
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar",
"digest": "sha256:63ca1fbb43ae5034640e5e6cb3e083e05c290072c5366fcaa9d62435a4cced85",
"size": 8081920
}
]
}
Le FICHIER MANIFEST
$ CONFIG="blobs/$(jq -r '.config.digest|sub(":"; "/")' "$MANIFEST")"
$ jq . "$CONFIG"{
"architecture": "amd64",
"config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ],
"Cmd": [ "/bin/sh" ],
"Image": "sha256:2b00b4bd27e9e55889516b87471798d04fafb613bbbfc4c46589b7ce7f7e75e4",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": null
},
"container": "a9f02e65025ad035b1bbd0ccda6a13d174e4ed21633f2671364c725a56bd7107",
"container_config": {
"Hostname": "a9f02e65025a",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ],
"Cmd": [ "/bin/sh", "-c", "#(nop) ", "CMD [\"/bin/sh\"]"
],
"Image": "sha256:2b00b4bd27e9e55889516b87471798d04fafb613bbbfc4c46589b7ce7f7e75e4",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {}
},
"created": "2024-09-06T22:20:07.972381771Z",
"docker_version": "23.0.11",
"history": [
{
"created": "2024-09-06T22:20:07.740564901Z",
"created_by": "/bin/sh -c #(nop) ADD file:5758b97d8301c84a204a6e516241275d785a7cade40b2fb99f01fe122482e283 in / "
},
{
"created": "2024-09-06T22:20:07.972381771Z",
"created_by": "/bin/sh -c #(nop) CMD [\"/bin/sh\"]",
"empty_layer": true
}
],
"os": "linux",
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:63ca1fbb43ae5034640e5e6cb3e083e05c290072c5366fcaa9d62435a4cced85"
]
}
}
Le fichier config
$ LAYER_ZERO="blobs/$(jq -r '.layers[0].digest|sub(":"; "/")' "$MANIFEST")"
$ tar -tvf "$LAYER_ZERO"drwxr-xr-x 0/0 0 2024-09-06 13:34 bin/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/arch -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/ash -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/base64 -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/bbconfig -> /bin/busybox
-rwxr-xr-x 0/0 808712 2024-06-10 09:11 bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/cat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/chattr -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/chgrp -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/chmod -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/chown -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/cp -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/date -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/dd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/df -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/dmesg -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/dnsdomainname -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/dumpkmap -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/echo -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/egrep -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/false -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/fatattr -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/fdflush -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/fgrep -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/fsync -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/getopt -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/grep -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/gunzip -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/gzip -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/hostname -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/ionice -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/iostat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/ipcalc -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/kbd_mode -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/kill -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/link -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/linux32 -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/linux64 -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/ln -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/login -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/ls -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/lsattr -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/lzop -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/makemime -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/mkdir -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/mknod -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/mktemp -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/more -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/mount -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/mountpoint -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/mpstat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/mv -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/netstat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/nice -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/pidof -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/ping -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/ping6 -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/pipe_progress -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/printenv -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/ps -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/pwd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/reformime -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/rev -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/rm -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/rmdir -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/run-parts -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/sed -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/setpriv -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/setserial -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/sh -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/sleep -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/stat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/stty -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/su -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/sync -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/tar -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/touch -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/true -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/umount -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/uname -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/usleep -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/watch -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 bin/zcat -> /bin/busybox
drwxr-xr-x 0/0 0 2024-09-06 13:34 dev/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/
-rw-r--r-- 0/0 7 2024-09-06 13:33 etc/alpine-release
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/apk/
-rw-r--r-- 0/0 7 2024-09-06 13:34 etc/apk/arch
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/apk/keys/
-rw-r--r-- 0/0 451 2021-10-18 19:54 etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 etc/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 etc/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 etc/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/apk/protected_paths.d/
-rw-r--r-- 0/0 103 2024-09-06 13:34 etc/apk/repositories
-rw-r--r-- 0/0 59 2024-09-06 13:34 etc/apk/world
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/busybox-paths.d/
-rw-r--r-- 0/0 3989 2024-06-10 09:11 etc/busybox-paths.d/busybox
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/crontabs/
-rw------- 0/0 283 2024-05-06 09:38 etc/crontabs/root
-rw-r--r-- 0/0 89 2024-05-06 09:38 etc/fstab
-rw-r--r-- 0/0 510 2024-05-06 09:38 etc/group
-rw-r--r-- 0/0 10 2024-05-06 09:38 etc/hostname
-rw-r--r-- 0/0 79 2024-05-06 09:38 etc/hosts
-rw-r--r-- 0/0 570 2024-05-06 09:38 etc/inittab
-rw-r--r-- 0/0 54 2024-09-06 13:33 etc/issue
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/logrotate.d/
-rw-r--r-- 0/0 140 2024-06-10 09:11 etc/logrotate.d/acpid
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/modprobe.d/
-rw-r--r-- 0/0 1545 2024-05-06 09:38 etc/modprobe.d/aliases.conf
-rw-r--r-- 0/0 2136 2024-05-06 09:38 etc/modprobe.d/blacklist.conf
-rw-r--r-- 0/0 122 2024-05-06 09:38 etc/modprobe.d/i386.conf
-rw-r--r-- 0/0 91 2024-05-06 09:38 etc/modprobe.d/kms.conf
-rw-r--r-- 0/0 15 2024-05-06 09:38 etc/modules
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/modules-load.d/
-rw-r--r-- 0/0 284 2024-05-06 09:38 etc/motd
lrwxrwxrwx 0/0 0 2024-09-06 13:34 etc/mtab -> /proc/mounts
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/network/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/network/if-down.d/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/network/if-post-down.d/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/network/if-post-up.d/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/network/if-pre-down.d/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/network/if-pre-up.d/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/network/if-up.d/
-rwxrwxr-x 0/0 285 2024-06-10 09:11 etc/network/if-up.d/dad
-rw-r--r-- 0/0 205 2024-05-06 09:38 etc/nsswitch.conf
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/opt/
-rw-r--r-- 0/0 188 2024-09-06 13:33 etc/os-release
-rw-r--r-- 0/0 702 2024-05-06 09:38 etc/passwd
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/periodic/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/periodic/15min/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/periodic/daily/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/periodic/hourly/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/periodic/monthly/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/periodic/weekly/
-rw-r--r-- 0/0 547 2024-05-06 09:38 etc/profile
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/profile.d/
-rw-r--r-- 0/0 97 2024-05-06 09:38 etc/profile.d/20locale.sh
-rw-r--r-- 0/0 249 2024-05-06 09:38 etc/profile.d/README
-rw-r--r-- 0/0 447 2024-05-06 09:38 etc/profile.d/color_prompt.sh.disabled
-rw-r--r-- 0/0 3144 2024-05-06 09:38 etc/protocols
drwxr-xr-x 0/0 0 2024-09-06 13:33 etc/secfixes.d/
-rw-r--r-- 0/0 97 2024-09-06 13:33 etc/secfixes.d/alpine
-rw-r--r-- 0/0 156 2024-06-10 09:11 etc/securetty
-rw-r--r-- 0/0 12813 2024-05-06 09:38 etc/services
-rw-r----- 0/42 260 2024-09-06 13:34 etc/shadow
-rw-r--r-- 0/0 38 2024-05-06 09:38 etc/shells
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/ssl/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 etc/ssl/cert.pem -> certs/ca-certificates.crt
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/ssl/certs/
-rw-r--r-- 0/0 220093 2024-07-09 11:59 etc/ssl/certs/ca-certificates.crt
-rw-r--r-- 0/0 412 2024-09-03 20:09 etc/ssl/ct_log_list.cnf
-rw-r--r-- 0/0 412 2024-09-03 20:09 etc/ssl/ct_log_list.cnf.dist
-rw-r--r-- 0/0 12328 2024-09-03 20:09 etc/ssl/openssl.cnf
-rw-r--r-- 0/0 12328 2024-09-03 20:09 etc/ssl/openssl.cnf.dist
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/ssl/private/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/ssl1.1/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 etc/ssl1.1/cert.pem -> /etc/ssl/cert.pem
lrwxrwxrwx 0/0 0 2024-09-06 13:34 etc/ssl1.1/certs -> /etc/ssl/certs
-rw-r--r-- 0/0 53 2024-05-06 09:38 etc/sysctl.conf
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/sysctl.d/
drwxr-xr-x 0/0 0 2024-09-06 13:34 etc/udhcpc/
-rw-r--r-- 0/0 287 2024-06-10 09:11 etc/udhcpc/udhcpc.conf
drwxr-xr-x 0/0 0 2024-09-06 13:34 home/
drwxr-xr-x 0/0 0 2024-09-06 13:34 lib/
drwxr-xr-x 0/0 0 2024-09-06 13:34 lib/apk/
drwxr-xr-x 0/0 0 2024-09-06 13:34 lib/apk/db/
-rw-r--r-- 0/0 14206 2024-09-06 13:34 lib/apk/db/installed
-rw------- 0/0 0 2024-09-06 13:34 lib/apk/db/lock
-rw-r--r-- 0/0 10240 2024-09-06 13:34 lib/apk/db/scripts.tar
-rw-r--r-- 0/0 76 2024-09-06 13:34 lib/apk/db/triggers
drwxr-xr-x 0/0 0 2024-09-06 13:34 lib/apk/exec/
drwxr-xr-x 0/0 0 2024-09-06 13:34 lib/firmware/
-rwxr-xr-x 0/0 649832 2024-03-15 12:43 lib/ld-musl-x86_64.so.1
-rwxr-xr-x 0/0 183992 2024-04-16 16:50 lib/libapk.so.2.14.0
lrwxrwxrwx 0/0 0 2024-09-06 13:34 lib/libc.musl-x86_64.so.1 -> ld-musl-x86_64.so.1
-rwxr-xr-x 0/0 4478288 2024-09-03 20:09 lib/libcrypto.so.3
-rwxr-xr-x 0/0 798424 2024-09-03 20:09 lib/libssl.so.3
lrwxrwxrwx 0/0 0 2024-09-06 13:34 lib/libz.so.1 -> libz.so.1.3.1
-rwxr-xr-x 0/0 100208 2024-04-12 09:40 lib/libz.so.1.3.1
drwxr-xr-x 0/0 0 2024-09-06 13:34 lib/modules-load.d/
drwxr-xr-x 0/0 0 2024-09-06 13:34 lib/sysctl.d/
-rw-r--r-- 0/0 1278 2024-05-06 09:38 lib/sysctl.d/00-alpine.conf
drwxr-xr-x 0/0 0 2024-09-06 13:34 media/
drwxr-xr-x 0/0 0 2024-09-06 13:34 media/cdrom/
drwxr-xr-x 0/0 0 2024-09-06 13:34 media/floppy/
drwxr-xr-x 0/0 0 2024-09-06 13:34 media/usb/
drwxr-xr-x 0/0 0 2024-09-06 13:34 mnt/
drwxr-xr-x 0/0 0 2024-09-06 13:34 opt/
dr-xr-xr-x 0/0 0 2024-09-06 13:34 proc/
drwx------ 0/0 0 2024-09-06 13:34 root/
drwxr-xr-x 0/0 0 2024-09-06 13:34 run/
drwxr-xr-x 0/0 0 2024-09-06 13:34 sbin/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/acpid -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/adjtimex -> /bin/busybox
-rwxr-xr-x 0/0 69648 2024-04-16 16:50 sbin/apk
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/arp -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/blkid -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/blockdev -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/depmod -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/fbsplash -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/fdisk -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/findfs -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/fsck -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/fstrim -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/getty -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/halt -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/hwclock -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/ifconfig -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/ifdown -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/ifenslave -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/ifup -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/init -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/inotifyd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/insmod -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/ip -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/ipaddr -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/iplink -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/ipneigh -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/iproute -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/iprule -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/iptunnel -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/klogd -> /bin/busybox
-rwxr-xr-x 0/0 393 2024-03-15 12:43 sbin/ldconfig
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/loadkmap -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/logread -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/losetup -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/lsmod -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/mdev -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/mkdosfs -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/mkfs.vfat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/mkswap -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/modinfo -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/modprobe -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/nameif -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/nologin -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/pivot_root -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/poweroff -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/raidautorun -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/reboot -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/rmmod -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/route -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/setconsole -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/slattach -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/swapoff -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/swapon -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/switch_root -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/sysctl -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/syslogd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/tunctl -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/udhcpc -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/vconfig -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/watchdog -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 sbin/zcip -> /bin/busybox
drwxr-xr-x 0/0 0 2024-09-06 13:34 srv/
drwxr-xr-x 0/0 0 2024-09-06 13:34 sys/
drwxrwxrwt 0/0 0 2024-09-06 13:34 tmp/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/bin/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/[ -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/[[ -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/awk -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/basename -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/bc -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/beep -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/blkdiscard -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/bunzip2 -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/bzcat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/bzip2 -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/cal -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/chvt -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/cksum -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/clear -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/cmp -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/comm -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/cpio -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/crontab -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/cryptpw -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/cut -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/dc -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/deallocvt -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/diff -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/dirname -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/dos2unix -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/du -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/eject -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/env -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/expand -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/expr -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/factor -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/fallocate -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/find -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/flock -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/fold -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/free -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/fuser -> /bin/busybox
-rwxr-xr-x 0/0 35424 2024-03-15 12:43 usr/bin/getconf
-rwxr-xr-x 0/0 44888 2024-03-15 12:43 usr/bin/getent
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/groups -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/hd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/head -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/hexdump -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/hostid -> /bin/busybox
-rwxr-xr-x 0/0 24520 2024-03-15 12:43 usr/bin/iconv
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/id -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/install -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/ipcrm -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/ipcs -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/killall -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/last -> /bin/busybox
-rwxr-xr-x 0/0 52 2024-03-15 12:43 usr/bin/ldd
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/less -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/logger -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/lsof -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/lsusb -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/lzcat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/lzma -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/lzopcat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/md5sum -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/mesg -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/microcom -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/mkfifo -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/mkpasswd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/nc -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/nl -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/nmeter -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/nohup -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/nproc -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/nsenter -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/nslookup -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/od -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/openvt -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/passwd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/paste -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/pgrep -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/pkill -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/pmap -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/printf -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/pscan -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/pstree -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/pwdx -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/readlink -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/realpath -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/renice -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/reset -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/resize -> /bin/busybox
-rwxr-xr-x 0/0 67576 2023-06-19 14:41 usr/bin/scanelf
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/seq -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/setkeycodes -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/setsid -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/sha1sum -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/sha256sum -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/sha3sum -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/sha512sum -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/showkey -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/shred -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/shuf -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/sort -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/split -> /bin/busybox
-rwxr-xr-x 0/0 14400 2024-06-10 09:11 usr/bin/ssl_client
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/strings -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/sum -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/tac -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/tail -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/tee -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/test -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/time -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/timeout -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/top -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/tr -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/traceroute -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/traceroute6 -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/tree -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/truncate -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/tty -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/ttysize -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/udhcpc6 -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/unexpand -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/uniq -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/unix2dos -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/unlink -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/unlzma -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/unlzop -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/unshare -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/unxz -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/unzip -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/uptime -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/uudecode -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/uuencode -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/vi -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/vlock -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/volname -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/wc -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/wget -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/which -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/who -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/whoami -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/whois -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/xargs -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/xxd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/xzcat -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/bin/yes -> /bin/busybox
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/lib/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/lib/engines-3/
-rwxr-xr-x 0/0 18504 2024-09-03 20:09 usr/lib/engines-3/afalg.so
-rwxr-xr-x 0/0 13864 2024-09-03 20:09 usr/lib/engines-3/capi.so
-rwxr-xr-x 0/0 47608 2024-09-03 20:09 usr/lib/engines-3/loader_attic.so
-rwxr-xr-x 0/0 22360 2024-09-03 20:09 usr/lib/engines-3/padlock.so
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/lib/libcrypto.so.3 -> ../../lib/libcrypto.so.3
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/lib/libssl.so.3 -> ../../lib/libssl.so.3
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/lib/modules-load.d/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/lib/ossl-modules/
-rwxr-xr-x 0/0 96088 2024-09-03 20:09 usr/lib/ossl-modules/legacy.so
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/local/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/local/bin/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/local/lib/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/local/share/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/sbin/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/add-shell -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/addgroup -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/adduser -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/arping -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/brctl -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/chpasswd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/chroot -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/crond -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/delgroup -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/deluser -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/ether-wake -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/fbset -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/killall5 -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/loadfont -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/nanddump -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/nandwrite -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/nbd-client -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/ntpd -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/partprobe -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/rdate -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/rdev -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/readahead -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/remove-shell -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/rfkill -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/sendmail -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/setfont -> /bin/busybox
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/sbin/setlogcons -> /bin/busybox
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/aarch64/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub
-rw-r--r-- 0/0 451 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub
-rw-r--r-- 0/0 800 2021-10-18 19:54 usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/armhf/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/armv7/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/mips64/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/mips64/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/ppc64le/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/riscv64/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/s390x/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/x86/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/apk/keys/x86_64/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
lrwxrwxrwx 0/0 0 2024-09-06 13:34 usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub -> ../alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/man/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/misc/
drwxr-xr-x 0/0 0 2024-09-06 13:34 usr/share/udhcpc/
-rwxr-xr-x 0/0 3688 2024-06-10 09:11 usr/share/udhcpc/default.script
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/cache/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/cache/apk/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/cache/misc/
dr-xr-xr-x 0/0 0 2024-09-06 13:34 var/empty/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/lib/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/lib/misc/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/local/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/lock/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/lock/subsys/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/log/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/mail/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/opt/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 var/run -> /run
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/spool/
drwxr-xr-x 0/0 0 2024-09-06 13:34 var/spool/cron/
lrwxrwxrwx 0/0 0 2024-09-06 13:34 var/spool/cron/crontabs -> /etc/crontabs
lrwxrwxrwx 0/0 0 2024-09-06 13:34 var/spool/mail -> /var/mail
drwxrwxrwt 0/0 0 2024-09-06 13:34 var/tmp/Le LaYER
$ LAYER_ZERO_DIFF=$(jq -r '.rootfs.diff_ids[0] | ltrimstr("sha256:")' $CONFIG)
$ echo "$LAYER_ZERO_DIFF $LAYER_ZERO" | sha256sum --check
blobs/sha256/63ca1fbb43ae5034640e5e6cb3e083e05c290072c5366fcaa9d62435a4cced85: Réussiapplication/vnd.oci.image.index.v1+jsonapplication/vnd.oci.image.manifest.v1+json
application/vnd.oci.image.layer.v1.tar
application/vnd.oci.image.layer.v1.tar+gzip
application/vnd.oci.image.layer.v1.tar+zstd
application/vnd.oci.image.config.v1+json
index.json
manifest(s)
config
layers
Le StoCkage des LAYERS
FROM ubuntu:latest
COPY apt.conf /ect/apt.conf
RUN apt update
container layer
= UNION FS
STORAGE / GrAph Drivers
| aufs | Advanced multi layered Unification |
| vfs | Virtual File System |
| overlay/overlay2 | OverlayFS |
| fuse-overlay | Filesystem in UserSpacE |
| devicemapper | |
| btrfs | B-tree File System |
Exemple : Overlayfs
$ mkdir overlayfs && cd $_
$ mkdir {layer1,layer2,upperlayer,workdir,mountedfs}
$ echo "content for file1.txt in layer 1" > layer1/file1.txt;
$ echo "content for file1.txt in layer 2" > layer2/file1.txt;
$ echo "content for file2.txt in layer 1" > layer1/file2.txt;
$ echo "content for file3.txt in layer 2" > layer2/file3.txt;
$ tree
.
├── layer1
│ ├── file1.txt
│ └── file2.txt
├── layer2
│ ├── file1.txt
│ └── file3.txt
├── mountedfs
├── upperlayer
└── workdirPréparation du test :
$ mount \
-t overlay overlay \
-o lowerdir=layer1:layer2,upperdir=upperlayer,workdir=workdir \
mountedfs
mount: ***/overlayfs/mountedfs: seul le superutilisateur peut utiliser mount.
-t : driver type
lowerdir= mounted read only directories (leftmoss precedence)
upperdir= R/W directory
workdir= used by driver (must be on the same device with upperdir)
$ unshare -Urm
-U : Usernamespace
-r : map user as root-m : unshare mounts namespace
I AM ROOT !
$ id
uid=0(root) gid=0(root) groupes=0(root),65534(nogroup)
# YEAAH !!
$ ls -la
total 28
drwxrwxr-x 7 root root 4096 sept. 12 13:34 .
drwxr-xr-x 60 root nogroup 4096 sept. 12 13:56 ..
drwxrwxr-x 2 root root 4096 sept. 12 13:35 layer1
drwxrwxr-x 2 root root 4096 sept. 12 13:35 layer2
drwxrwxr-x 2 root root 4096 sept. 12 13:34 mountedfs
drwxrwxr-x 2 root root 4096 sept. 12 13:34 upperlayer
drwxrwxr-x 2 root root 4096 sept. 12 13:34 workdir
$ mount \
-t overlay overlay \
-o lowerdir=layer1:layer2,upperdir=upperlayer,workdir=workdir \
mountedfs
$ tree
mountedfs
├── file1.txt
├── file2.txt
└── file3.txt
# vérifions la précédence
$ cat mountedfs/file1.txt
content for file1.txt in layer 1
# Ajoutons un fichier dans le repertoire d'union
$ echo "content for file4.txt" > mountedfs/file4.txt
$ tree
.
├── layer1
│ ├── file1.txt
│ └── file2.txt
├── layer2
│ ├── file1.txt
│ └── file3.txt
├── mountedfs
│ ├── file1.txt
│ ├── file2.txt
│ ├── file3.txt
│ └── file4.txt
├── upperlayer
│ └── file4.txt
└── workdir
└── work
# Maintenant supprimons un fichier
$ rm mountedfs/file1.txt
$ ls -la mountedfs
total 20
drwxrwxr-x 1 root root 4096 sept. 12 19:49 .
drwxrwxr-x 7 root root 4096 sept. 12 13:34 ..
-rw-rw-r-- 1 root root 33 sept. 12 13:35 file2.txt
-rw-rw-r-- 1 root root 33 sept. 12 13:35 file3.txt
-rw-rw-r-- 1 root root 22 sept. 12 19:46 file4.txt
$ ls -la layer1
total 16
drwxrwxr-x 2 root root 4096 sept. 12 13:35 .
drwxrwxr-x 7 root root 4096 sept. 12 13:34 ..
-rw-rw-r-- 1 root root 33 sept. 12 13:34 file1.txt
-rw-rw-r-- 1 root root 33 sept. 12 13:35 file2.txt
$ ls -la layer2
total 16
drwxrwxr-x 2 root root 4096 sept. 12 13:35 .
drwxrwxr-x 7 root root 4096 sept. 12 13:34 ..
-rw-rw-r-- 1 root root 33 sept. 12 13:34 file1.txt
-rw-rw-r-- 1 root root 33 sept. 12 13:35 file3.txt
$ ls -la upperlayer
total 12
drwxrwxr-x 2 root root 4096 sept. 12 19:49 .
drwxrwxr-x 7 root root 4096 sept. 12 13:34 ..
c--------- 2 root root 0, 0 sept. 12 19:49 file1.txt
-rw-rw-r-- 1 root root 22 sept. 12 19:46 file4.txt
En conclusion
Un format de description simple
Des layers immuables (donc partageables)
Un format de stockage extensible
Repose sur les fonctionnalités du kernel Linux
Un écosystème riche
Références
https://gdevillele.github.io/engine/userguide/storagedriver/https://github.com/opencontainers/image-spec/blob/main/spec.md
https://docs.docker.com/storage/storagedriver/
https://blog.quarkslab.com/digging-into-the-oci-image-specification.html
https://integratedcode.us/2016/08/30/storage-drivers-in-docker-a-deep-dive/
MERCI !

Les images dockers
By Cyrille Sondag
Les images dockers
- 5