Image Ubuntu 22.04 minimale et durcie, multi-arch, utilisateur non-root, prête pour la production.
489
This image provides a clean, stable, and minimal Ubuntu 22.04 (Jammy) base to build production-ready Docker containers. It is built from scratch using the official Ubuntu OCI rootfs, ensuring authenticity, lightness, and reproducibility.
Automatic monthly updates: The image is rebuilt every month with the latest Ubuntu updates and security patches.
Designed to be secure, fast, and multi-purpose, it includes advanced APT optimizations, a non-root user, and system hardening for maximum reliability.
Supported architectures:
amd64andarm64
amd64, arm64) as a single manifestsystemd, upstart)appuser) for safer container execution/tmp, /var/log, /var/lib/apt/listsen_US.UTF-8, UTC)root account lockedumask 027| Category | Packages |
|---|---|
| Base utilities | bash, cron, curl, gnupg, jq, netcat-openbsd, tzdata |
| System support | apt-utils, ca-certificates, locales |
| Variable | Default value | Description |
|---|---|---|
PUID | 1000 | Non-root user ID |
PGID | 1000 | Non-root group ID |
HOME | /config | Home directory for appuser |
LANG | en_US.UTF-8 | Default locale |
TZ | UTC | Default timezone |
DEBIAN_FRONTEND | noninteractive | Disables interactive APT prompts |
| Field | Value |
|---|---|
| OS | Ubuntu 22.04 (Jammy) |
| Architectures | amd64, arm64 |
| Source | Ubuntu OCI RootFS |
| Maintainer | Sam Tech Lab |
| License | MIT |
| Update frequency | Monthly (automated) |
| Registry | Tag | Architecture |
|---|---|---|
| Docker Hub | samtechrepo/ubuntu-22.04-jammy:latest | amd64 + arm64 |
| Docker Hub | samtechrepo/ubuntu-22.04-jammy:YYYY.MM | amd64 + arm64 |
| GHCR | ghcr.io/sam-tech-lab-git/ubuntu-22.04-jammy:latest | amd64 + arm64 |
| GHCR | ghcr.io/sam-tech-lab-git/ubuntu-22.04-jammy:YYYY.MM | amd64 + arm64 |
These tags point to a multi-architecture manifest: Docker automatically pulls the image matching the local platform.
For the full security baseline and reporting policy, see SECURITY.md.
Want to contribute? See CONTRIBUTING.md and the CODE_OF_CONDUCT.md.
docker run -it --rm samtechrepo/ubuntu-22.04-jammy:latest /bin/bash
FROM samtechrepo/ubuntu-22.04-jammy:latest
# The base image runs as non-root (`USER appuser`) by default, so package
# installation must happen as root during the build, then drop back down.
USER root
RUN apt-get update && \
apt-get install -y --no-install-recommends nginx && \
rm -rf /var/lib/apt/lists/* && \
sed -i 's/80 default_server;/8080 default_server;/g' /etc/nginx/sites-enabled/default && \
sed -i '/^user /d' /etc/nginx/nginx.conf && \
sed -i 's#pid /run/nginx.pid;#pid /tmp/nginx.pid;#' /etc/nginx/nginx.conf && \
ln -sf /dev/stdout /var/log/nginx/access.log && \
ln -sf /dev/stderr /var/log/nginx/error.log && \
chown -R appuser:appuser /var/lib/nginx
USER appuser
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
This Dockerfile creates a custom image based on ghcr.io/sam-tech-lab-git/ubuntu-22.04-jammy:latest with NGINX preinstalled. NGINX listens on port 8080 instead of the default 80, since binding to a privileged port (< 1024) requires root, which this container intentionally does not run as.
You can then build and test it locally:
docker build -t my-nginx .
docker run -d -p 8080:8080 my-nginx
⚠️ Do not install packages at container startup (e.g. via a
command:runningapt-get install) - since the image runs as a non-root user by default,apt-getwill fail withPermission deniedon/var/lib/apt/lists. Always install packages at build time, in your own Dockerfile, as shown above.
Use the custom Dockerfile from the previous example as the build context. Create a file named docker-compose.yml next to it:
services:
web:
build: .
container_name: nginx-web
restart: unless-stopped
ports:
- "8080:8080"
environment:
TZ: "Europe/Paris"
Then start the container:
docker compose up -d
This builds the custom NGINX image on top of the Sam Tech Lab base, and launches the web server at http://localhost:8080.
To stop the container:
docker compose down
Cette image fournit une base Ubuntu 22.04 (Jammy) propre, stable et minimaliste pour construire des conteneurs Docker de production. Elle est construite from scratch à partir du rootfs officiel Ubuntu OCI, garantissant authenticité, légèreté et reproductibilité.
Mises à jour automatiques mensuelles : L'image est reconstruite chaque mois avec les dernières mises à jour et correctifs de sécurité Ubuntu officiels.
Conçue pour être sécurisée, rapide et multi-usage, elle inclut des optimisations APT avancées, un utilisateur non-root et un durcissement du système pour une compatibilité maximale.
Architectures supportées :
amd64etarm64
amd64, arm64) sous un manifeste uniquesystemd, upstart)appuser) pour une exécution plus sûre/tmp, /var/log, /var/lib/apt/listsen_US.UTF-8, UTC)root verrouilléumask 027 par défaut| Catégorie | Paquets |
|---|---|
| Base système | bash, cron, curl, gnupg, jq, netcat-openbsd, tzdata |
| Outils système | apt-utils, ca-certificates, locales |
| Variable | Valeur par défaut | Description |
|---|---|---|
PUID | 1000 | Identifiant de l'utilisateur non-root |
PGID | 1000 | Identifiant de groupe non-root |
HOME | /config | Répertoire personnel de appuser |
LANG | en_US.UTF-8 | Locale par défaut |
TZ | UTC | Fuseau horaire |
DEBIAN_FRONTEND | noninteractive | Empêche les invites APT interactives |
| Champ | Valeur |
|---|---|
| Système | Ubuntu 22.04 (Jammy) |
| Architectures | amd64, arm64 |
| Source | Ubuntu OCI RootFS |
| Mainteneur | Sam Tech Lab |
| Licence | MIT |
| Mise à jour | Mensuelle (automatisée) |
| Registre | Tag | Architecture |
|---|---|---|
| Docker Hub | samtechrepo/ubuntu-22.04-jammy:latest | amd64 + arm64 |
| Docker Hub | samtechrepo/ubuntu-22.04-jammy:YYYY.MM | amd64 + arm64 |
| GHCR | ghcr.io/sam-tech-lab-git/ubuntu-22.04-jammy:latest | amd64 + arm64 |
| GHCR | ghcr.io/sam-tech-lab-git/ubuntu-22.04-jammy:YYYY.MM | amd64 + arm64 |
Ces tags pointent vers un manifeste multi-architecture : Docker sélectionne automatiquement l'image correspondant à la plateforme locale.
Pour les détails de sécurité et la politique de signalement, consultez SECURITY.md.
Envie de contribuer ? Consultez CONTRIBUTING.md et le CODE_OF_CONDUCT.md.
docker run -it --rm samtechrepo/ubuntu-22.04-jammy:latest /bin/bash
FROM samtechrepo/ubuntu-22.04-jammy:latest
# L'image de base tourne en non-root (`USER appuser`) par défaut : l'installation
# de paquets doit donc se faire en root pendant le build, puis repasser en appuser.
USER root
RUN apt-get update && \
apt-get install -y --no-install-recommends nginx && \
rm -rf /var/lib/apt/lists/* && \
sed -i 's/80 default_server;/8080 default_server;/g' /etc/nginx/sites-enabled/default && \
sed -i '/^user /d' /etc/nginx/nginx.conf && \
sed -i 's#pid /run/nginx.pid;#pid /tmp/nginx.pid;#' /etc/nginx/nginx.conf && \
ln -sf /dev/stdout /var/log/nginx/access.log && \
ln -sf /dev/stderr /var/log/nginx/error.log && \
chown -R appuser:appuser /var/lib/nginx
USER appuser
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
Ce Dockerfile crée une image personnalisée basée sur ghcr.io/sam-tech-lab-git/ubuntu-22.04-jammy:latest, avec NGINX préinstallé. NGINX écoute sur le port 8080 plutôt que le port 80 par défaut, car se lier à un port privilégié (< 1024) nécessite les droits root, que ce conteneur n'a volontairement pas.
Vous pouvez ensuite la construire et la tester localement :
docker build -t my-nginx .
docker run -d -p 8080:8080 my-nginx
⚠️ N'installez pas de paquets au démarrage du conteneur (par exemple via un
command:lançantapt-get install) - l'image tournant en utilisateur non-root par défaut,apt-getéchouera avecPermission deniedsur/var/lib/apt/lists. Installez toujours les paquets au moment du build, dans votre propre Dockerfile, comme montré ci-dessus.
Utilisez le Dockerfile personnalisé de l'exemple précédent comme contexte de build. Créez un fichier nommé docker-compose.yml à côté :
services:
web:
build: .
container_name: nginx-web
restart: unless-stopped
ports:
- "8080:8080"
environment:
TZ: "Europe/Paris"
Puis lancer le conteneur :
docker compose up -d
Cela construit l'image NGINX personnalisée à partir de la base Sam Tech Lab, et démarre le serveur web sur http://localhost:8080.
Arrêter le conteneur :
docker compose down
This project is distributed under the MIT license - see the LICENSE file for more details.
Ce projet est distribué sous la licence MIT - consultez le fichier LICENSE pour plus de détails.
Copyright (c) 2026 Sam Tech Lab
Content type
Image
Digest
sha256:1a3ea31c4…
Size
42.3 MB
Last updated
about 2 months ago
docker pull samtechrepo/ubuntu-22.04-jammy