À propos du projet

container est un outil en ligne de commande d'Apple permettant de créer et d'exécuter des conteneurs Linux comme machines virtuelles légères sur un Mac. Il est écrit en Swift et optimisé pour Apple silicon. L'outil consomme et produit des images de conteneurs compatibles OCI, de sorte que les images peuvent être extraites et poussées vers n'importe quel registre de conteneurs standard et exécutées dans d'autres applications compatibles OCI. En interne, il s'appuie sur le package Swift Containerization pour la gestion de bas niveau des conteneurs, des images et des processus. Exigences et support de plateforme : un Mac Apple silicon est requis, et l'outil est pris en charge sur macOS 26, tirant parti des fonctionnalités de virtualisation et de réseau de cette version. Les versions macOS antérieures ne sont pas prises en charge. L'installation se fait via un package d'installation signé depuis la page des versions GitHub, qui place les fichiers dans /usr/local. Le service système est démarré avec `container system start`. Un premier conteneur peut être exécuté avec `container run --rm alpine echo hello`, qui télécharge l'image alpine, l'exécute dans une VM Linux légère, affiche la sortie et supprime le conteneur à la sortie. La mise à niveau et la rétrogradation sont gérées en réinstallant le package signé ou en utilisant le script update-container.sh installé ; le service existant doit d'abord être arrêté. La rétrogradation nécessite de désinstaller la version actuelle, en conservant éventuellement les données utilisateur avec l'option -k ou en les supprimant avec -d. La désinstallation utilise uninstall-container.sh avec les mêmes options de conservation des données. La documentation comprend un tutoriel guidé qui construit, exécute et publie une image de serveur web simple, des guides pratiques, un aperçu technique, une référence complète des commandes, des instructions de compilation et une documentation API générée. Les contributions sont bienvenues via le guide de contribution du projet. Le projet est en développement actif, et ses versions de publication sont des versions de produit plutôt que des versions sémantiques. La compatibilité de l'interface CLI est généralement préservée au sein d'une version majeure, bien que des changements cassants occasionnels puissent être nécessaires ; les fonctionnalités marquées expérimentales, comme la sous-commande k8s, peuvent changer sans garantie de rétrocompatibilité. L'API XPC container-apiserver préserve la compatibilité ascendante et descendante au sein d'une version majeure, tandis que les autres assistants XPC non publics ne garantissent pas la compatibilité entre les versions. Les données d'application ne fournissent qu'une compatibilité ascendante, garantie au sein d'une version majeure, et la mise à niveau vers une version majeure plus récente peut nécessiter un chemin de mise à niveau spécifique.