Construction de containers - Buildah
1. Informations
1.1. buildah1.home.lab
| Caractéristiques | |
|---|---|
| RAM | 2 Go |
| CPU | 2 coeurs |
| Disque | 80 Go |
| IP admin | 192.168.50.22 |
2. Documentations
3. Installation
3.1. Installer le package buildah
$ sudo yum install container-tools
$ sudo yum install buildah
$ sudo yum install shadow-utils fuse-overlayfs slirp4netns
3.2. Configurer l'utilisateur $USER
$ sudo usermod --add-subuids 100000-165536 --add-subgids 100000-165536 $USER
4. Configuration de l'utilisateur
4.1. Modifier le fichier ~/.bashrc
- Modifier le fichier
~/.bashrc
~/.bashrc
export BUILDAH_ISOLATION=oci
export BUILDAH_USE_SLIRP4NETNS=true
4.2. Créer le fichier ~/.config/containers/storage.conf
$ sudo mkdir -p /data/containers/storage
$ sudo chown $USER:$GROUP /data/containers
$ sudo chown $USER:$GROUP /data/containers/storage
- Créer le fichier
~/.config/containers/storage.conf
~/.config/containers/storage.conf
[storage]
driver = "overlay"
runroot = "/run/user/$(id -u)/containers"
graphroot = "/data/containers/storage"
[storage.options]
mount_program = "/usr/bin/fuse-overlayfs"
- Modifier le fichier
/etc/fuse.conf
user_allow_other
4.3. Modifier le fichier registries.conf
- Modifier le fichier
/etc/containers/registries.conf - #todo à compléter
5. 5.Construction d'une image
5.1. Documentations
- https://www.answertopia.com/almalinux/an-almalinux-container-tutorial/
- https://blog.stephane-robert.info/docs/conteneurs/images-conteneurs/build/buildah/
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/building_running_and_managing_containers/working-with-containers-using-buildah#working-with-containers-using-buildah
- https://cloudspinx.com/install-podman-and-buildah-on-rocky-almalinux/
5.2. Utiliser Buildah
buildah from alpine:3.18.4
ou
CONTAINER_ID=$(buildah from alpine:3.18.4)
5.3. Lister les containers
$ buildah containers
5.4. Exécuter une commande dans une image
$ buildah run be48c4dce1a2 apk add apache2
$ buildah commit be48c4dce1a2 alpine_apache2:0.1
5.5. Inspecter une image
$ buildah inspect alpine_apache2:0.1
5.6. Push d'une image dans le registre privé Harbor
$ buildah login harbor1.home.lab
$ buildah push alpine_apache2:0.1 harbor1.home.lab/factory/apache2:0.1
5.7. Lister les containers
$ buildah containers
5.8. Supprimer un container
$ builadh rm <CONTAINER>
5.9. Lister les images
$ buildah images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/alpine_apache2 0.1 4d922f3832dc 13 minutes ago 13.5 MB
docker.io/library/alpine 3.18.4 8ca4688f4f35 19 months ago 7.63 MB
5.10. Suppression d'une image
$ buildah rmi <IMAGE_ID>
6. Autres outils
6.1. Installer le package skopeo
$ sudo yum install skopeo