forked from quentin/quentin.dufour.io
Update Article “2023-04-06-un-registre-statique-docker-avec-garage”
This commit is contained in:
parent
7fff9200af
commit
5925e13961
1 changed files with 55 additions and 6 deletions
|
@ -210,7 +210,7 @@ Maintenant on va reconstituer cette image dans notre registre à la main. On cop
|
|||
|
||||
```bash
|
||||
cd /tmp/garae-img-multi
|
||||
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
|
||||
aws s3 cp --content-type application/vnd.docker.distribution.manifest.list.v2+json \
|
||||
manifest.json \
|
||||
s3://quentin.dufour.io/v2/garage/manifests/v0.8.2
|
||||
```
|
||||
|
@ -220,24 +220,73 @@ Il faut aussi que le manifest soit accessible depuis son hash sha256, pour ça i
|
|||
```text
|
||||
$ sha256 manifest.json
|
||||
SHA256 (manifest.json) = 91af689013dd80d2ef0f4ff75038bc738b3193a11e201530d6da0fa833f55cbb
|
||||
$ aws s3 cp --content-type application/vnd.docker.distribution.manifest.list.v2+json \
|
||||
manifest.json \
|
||||
s3://quentin.dufour.io/v2/garage/manifests/sha256:91af689013dd80d2ef0f4ff75038bc738b3193a11e201530d6da0fa833f55cbb
|
||||
```
|
||||
|
||||
Ensuite on copie les manifestes des images des différentes architectures (ici `linux/arm`, `linux/arm64`, `linux/amd64, et linux/386` :
|
||||
Ensuite on copie les manifestes des images des différentes architectures (ici `linux/arm`, `linux/arm64`, `linux/amd64, et linux/386`) :
|
||||
|
||||
```bash
|
||||
undefined
|
||||
# manifest arm
|
||||
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
|
||||
12ec13fe92959249c52c46e97754333267ceeea22978434737978a135b7185ce.manifest.json \
|
||||
s3://quentin.dufour.io/v2/garage/manifests/sha256:12ec13fe92959249c52c46e97754333267ceeea22978434737978a135b7185ce
|
||||
|
||||
# manifest arm64
|
||||
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
|
||||
236604ea7a441f907d52129d9490fe96b64ef2efd8d4b1c1c50ef8dbae361a8e.manifest.json \
|
||||
s3://quentin.dufour.io/v2/garage/manifests/sha256:236604ea7a441f907d52129d9490fe96b64ef2efd8d4b1c1c50ef8dbae361a8e
|
||||
|
||||
# manifest 386
|
||||
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
|
||||
47df19e0c6333356e503258e6301c3a91848644667a0b7de4162e6841e89769a.manifest.json \
|
||||
s3://quentin.dufour.io/v2/garage/manifests/sha256:47df19e0c6333356e503258e6301c3a91848644667a0b7de4162e6841e89769a
|
||||
|
||||
# manifest amd64
|
||||
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
|
||||
73a20980fd232dc7acd51d21df6c7c9964bc7c5fbcfdc098b95cfd221bf67bf6.manifest.json \
|
||||
s3://quentin.dufour.io/v2/garage/manifests/sha256:73a20980fd232dc7acd51d21df6c7c9964bc7c5fbcfdc098b95cfd221bf67bf6
|
||||
```
|
||||
|
||||
Enfin, on copie les blobs, qui contiennent par exemple les layers de chaque images :
|
||||
Enfin, on copie les blobs, qui contiennent par exemple les layers de chaque images. Plutôt que de copier à la main, cette fois-ci je fais une boucle :
|
||||
|
||||
```bash
|
||||
undefined
|
||||
for i in $(ls | grep -P '^[a-f0-9]+$'); do
|
||||
aws s3 cp $i "s3://quentin.dufour.io/v2/garage/blobs/sha256:$i"
|
||||
done
|
||||
```
|
||||
|
||||
aa
|
||||
Et voilà !
|
||||
|
||||
## Tester notre registre
|
||||
|
||||
On peut d'abord essayer avec skopeo la même commande qu'on a exécuté sur le Docker Hub pour dump toutes nos images :
|
||||
|
||||
```bash
|
||||
skopeo --insecure-policy copy \
|
||||
--all --format v2s2 --dest-compress
|
||||
docker://quentin.dufour.io/garage:v0.8.2
|
||||
dir:/tmp/garage-s3-registry
|
||||
```
|
||||
|
||||
Et puis, plus simplement, avec Docker directement :
|
||||
|
||||
```bash
|
||||
docker pull quentin.dufour.io/garage:v0.8.2
|
||||
```
|
||||
|
||||
Et pourquoi pas tenter même de lancer notre conteneur ?
|
||||
|
||||
```bash
|
||||
$ sudo docker run --rm -it quentin.dufour.io/garage:v0.8.2 /garage help
|
||||
garage v0.8.2 [features: k2v, sled, lmdb, sqlite, consul-discovery, kubernetes-discovery, metrics, telemetry-otlp, bundled-libs]
|
||||
S3-compatible object store for self-hosted geo-distributed deployments
|
||||
...
|
||||
```
|
||||
|
||||
Nous y voilà : nous savons créer un registre Docker statique ! Et maintenant, pourquoi ne pas construire nos images directement avec Nix ?
|
||||
|
||||
## Construire l'image nous-même avec Nix
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue