Il y a quelques semaines
docker
L'installation se passe bien et la procédure est bien expliquée ici https://docs.docker.com/desktop/setup/install/linux/ubuntu/
L'interface est similaire à ce que je connaissais sous Windows, je retrouve vite mes repères et cela m'aide grandement lorsque j'ai beaucoup de containers qui tournent
Mais cette joie fut de courte durée :
- Pour accéder à un registry, la manière de stoquer l'auth nécessite de passer par gpg : https://docs.docker.com/desktop/get-started/#credentials-management-for-linux-users
- Dans mon cas je modifie directement en retirant l'instruction
~/.docker/docker.json
qui vautcredsStore
desktop
- Cette action est à reproduire à chaque redémarrage du service
docker
- Docker Desktop s'exécute dans une VM, en effet l'équipe Docker a décidé de centraliser leur développement de cet outil sur toutes les plateformes en choisissant cette technique. Du coup sous Linux nous sommes obligés de passer par une sur-couche qui est nécessaire uniquement pour Docker Desktop (sous Linux utilise les outils du noyau). Et donc pour accéder au fichier log de ton container
docker
le chemin qui est retourné n'existe pas dans le container !sudo docker inspect my-container --format='{{.LogPath}}'
- Pour accéder à ton fichier de log tu dois passer par cette commande qui te connectes à la VM en sh:
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
- Et là tu es dans la VM, si tu veux par exemple vider ton fichier tu peux accéder au fichier maintenant
- Lors de l'upgrade de mon Ubuntu en version 24.04, Docker Desktop ne démarrait plus, car Ubuntu a supprimé cette restriction
apparmor_restrict_unprivileged_userns
- Workaround en attendant un fix :
sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
- Lorsque vous avez installé Docker Desktop, la communication se fait via un autre socket que vous retrouvez avec la commandeVous remarquez que l'ancien context
docker context ls.
est conservé qui correspond à docker sans la version de Docker Desktop.default
- Il se peut que vous ayez des containers qui tournent sur les 2 sockets, pensez bien à faire tourner tous vos containers sur une même socket sinon vous ne les verrez pas :
docker context use desktop-linux
Ces différents points m'ont grandement ralenti mais il fallait que je change mes habitudes, c'est génant au début mais on s'y fait après.
Cependant le fait que cela tourne dans une VM me gêne car cela introduit des comportements non attendus, j'aimais l'idée de ne pas avoir de sur-couche.
Au début j'ai choisi cette solution, car le projet sur lequel je travaillais n'avait pas moins de 20 containers et lire la commande
docker ps- lire mes logs proprement
- supprimer mes containers / images
- faire un dans cette interface
exec
Sauf qu'en cherchant bien j'ai découvert Portainer et c'est exactement ce que je cherchais : très agréable et pas de VM
Au revoir Docker Desktop