{{tag> Xenial Focal virtualisation VETUSTE}} ---- ====== Docker-Compose ====== [[wpfr>Docker_(logiciel)#Outils_associés|Docker compose]] permet de définir et exécuter de multiple conteneurs [[:docker]]. La commande ''docker compose'' va chercher un fichier ''docker-compose.yml'' qui décrit des objets docker (principalement des containers) et leur configuration : * nom d'une ou plusieurs images docker (éventuellement à construire et) à lancer * variables d'environnement * utilisateurs * volumes (espaces de stockages persistés et points de montage) * réseaux docker etc. Cela permet de décrire un environnement, et de toucher à ce qu'on appelle l'//[[wpfr>infrastructure as code]]//. Pour plus d'information, consulter [[https://docs.docker.com/compose/|la documentation officielle (en)]] **Docker compose** est une extension de [[:docker]]. C'était auparavant une application autonome. Elle ne s'installe plus de la même façon et on n'utilise plus la commande : docker-compose mais docker compose Certaines documentations anciennes sont donc à ajuster. FIXME C'est aussi le cas de cette page qui est aujourd'hui en grande partie obsolète. ===== Installation ===== ==== Depuis les dépôts officiels d'Ubuntu (conseillé) ==== apt install docker-compose ==== Depuis le dépôt docker (conseillé pour avoir une version plus récente) ==== Reportez-vous à [[:docker#methode_conseilleeinstallation_depuis_les_depots_officiels|l'installation sur la page docker]]\\ Cette solution installe le plug-in //docker-compose-plugin// à docker qui ajoute la sous-commande //compose// à la commande //docker//, aussi les appels se font par docker compose sans le tiret entre les 2 mots. ==== Avec le binaire (préférer la solution précédente) ==== Comme la plupart des logiciels, la version obtenue par les dépôts officielles peut-être un peu ancienne Docker-compose tient dans un fichier binaire, il est donc facile de passer à la dernière version ou à une version spécifique.\\ Tout d'abord, si vous aviez installé une précédente version, supprimez-la, par exemple si version des dépôts officiels : sudo apt remove docker-compose Puis télécharger la version que vous souhaitez à partir de [[https://github.com/docker/compose/releases]] par exemple, pour la v2.2.3 : [[https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64]]\\ puis déplacer le fichier dans : sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose puis le rendre exécutable : sudo chmod +x /usr/local/bin/docker-compose Vérifier que docker-compose s'appelle correctement : docker-compose --version # qui doit retourné une ligne du type : Docker Compose version v2.2.3 Ces commandes toutes en un pour la mise à jour sur un serveur donne ((ne le faites sur un serveur en //production// que si vous êtes sûr de ce que vous faites)) : wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 && sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose && docker-compose --version La mise à jour peut-être faite alors que des containers tournent.\\ Sous [[:bionic]], la version de docker depuis les dépôt officiels est, en mars 2022, la v19.03.13 qui est compatible avec docker-compose v2 ===== Problèmes ===== Si un docker-compose retourne l'erreur : 1 error occurred: * error listing credentials - err: exec: "docker-credential-secretservice": executable file not found in $PATH dans le fichier ~/.docker/config.json, modifier le mot-clé **credsStore** par **credStore**((source (en) : https://forums.docker.com/t/docker-credential-desktop-exe-executable-file-not-found-in-path-using-wsl2/100225/5)) ===== Voir aussi ===== - https://docs.docker.com/compose/install/#install-compose-on-linux-systems - https://github.com/docker/compose#linux ---- //Contributeurs : // * //[[:utilisateurs:bcag2|bcag2]]//