Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
docker [Le 20/11/2019, 10:45]
bcag2 [Voir aussi] màj des liens, docs.docker et -> https
docker [Le 08/01/2024, 14:40] (Version actuelle)
maragatain Changement du chemin et du nom du fichier
Ligne 16: Ligne 16:
 <note tip>Pour mettre en place un serveur LAMP grâce à Docker, n'​hésitez pas à consulter [[:​docker_lamp|ce tutoriel]].</​note>​ <note tip>Pour mettre en place un serveur LAMP grâce à Docker, n'​hésitez pas à consulter [[:​docker_lamp|ce tutoriel]].</​note>​
  
-<note warning>​À l'​heure actuelle, Docker n'est [[https://​github.com/​Microsoft/​WSL/​issues/​575|pas compatible]] avec [[:​wsl|Windows Subsystem for Linux]]. ​Donc ne tentez pas cette installation si vous utilisez Ubuntu on Windows. (voir [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=2023871|ce sujet]] sur le forum)</​note>​+<note warning>​À l'​heure actuelle, Docker n'est [[https://​github.com/​Microsoft/​WSL/​issues/​575|pas compatible]] avec [[:​wsl|Windows Subsystem for Linux 1]]. Pour l'​utiliser ​vous devez convertir votre subsystem en version 2. (''​wsl.exe --set-version ​ubuntu ​2''​)</​note>​
 ===== Pré-requis ​ ===== ===== Pré-requis ​ =====
    
Ligne 26: Ligne 26:
  
 **Docker** fait partie des [[:​depots|dépôts officiels]] à partir d’[[:​trusty|Ubuntu 14.04 LTS]]. Il suffit donc d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​docker.io]]**. **Docker** fait partie des [[:​depots|dépôts officiels]] à partir d’[[:​trusty|Ubuntu 14.04 LTS]]. Il suffit donc d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​docker.io]]**.
 +
 +Il peut-être utile d'​installer également [[:​docker-compose]] pour travailler avec plusieurs conteneurs, comme illustré dans la page [[docker_lamp#​methode_avancee|docker_lamp]] :
 +<code bash>apt install docker-compose</​code>​
  
 ==== Méthode conseillée par le site docker.com ==== ==== Méthode conseillée par le site docker.com ====
 Il existe 2 versions de Docker : Docker CE (Community Edition) et Docker EE (Enterprise Edition). La version CE est gratuite et open-source,​ et correspond à la version packagée par défaut dans les dépôts Ubuntu, mais en version plus récente. C'est donc l'​installation de cette version qui est décrite ci-après, et qui utilise le dépôt officiel mis à disposition par le site Docker. Il existe 2 versions de Docker : Docker CE (Community Edition) et Docker EE (Enterprise Edition). La version CE est gratuite et open-source,​ et correspond à la version packagée par défaut dans les dépôts Ubuntu, mais en version plus récente. C'est donc l'​installation de cette version qui est décrite ci-après, et qui utilise le dépôt officiel mis à disposition par le site Docker.
 (page d'​origine en anglais : https://​docs.docker.com/​install/​linux/​docker-ce/​ubuntu/#​install-docker-ce) (page d'​origine en anglais : https://​docs.docker.com/​install/​linux/​docker-ce/​ubuntu/#​install-docker-ce)
 +=== Désinstaller les anciennes versions ===
 +Les anciennes versions de Docker étaient appelées docker, docker.io ou docker-engine. Si celles-ci sont installées,​ désinstallez-les :​
 +<code bash>
 +# pour vérifier ce qui est installé lié à docker :
 +dpkg -l |grep -E "​^ii.+docker"​
 +# puis supprimer
 +sudo apt autoremove docker.io docker-compose
 +</​code>​
 +Le contenu de /​var/​lib/​docker/,​ y compris les images, les conteneurs, les volumes et les réseaux, sont préservés. Si vous n'avez pas besoin de sauvegarder vos données existantes et que vous souhaitez commencer par une installation propre, reportez-vous à [[https://​docs.docker.com/​engine/​install/​ubuntu/#​uninstall-docker-engine|uninstall Docker Engine]](en).
 +
 === Configurer le dépôt === === Configurer le dépôt ===
 +Les étapes ci-dessous ne font que reprendre les instructions officielles accessibles sur [[https://​docs.docker.com/​engine/​install/​ubuntu/#​install-using-the-repository]]\\
 Mettre à jour APT : Mettre à jour APT :
-<​code>​sudo apt-get update</​code>​+<​code ​bash>sudo apt update</​code>​
 Installer les paquets permettant à APT d'​utiliser un serveur HTTPS de dépôt : Installer les paquets permettant à APT d'​utiliser un serveur HTTPS de dépôt :
-<​code>​sudo apt-get install \ +<​code ​bash>sudo apt install \ 
-        apt-transport-https \ +apt-transport-https \ 
-        ca-certificates \ +ca-certificates \ 
-        curl \ +curl \ 
-        software-properties-common</​code>​+software-properties-common</​code>​ 
 Puis ajouter la clé GPG du site de Docker : Puis ajouter la clé GPG du site de Docker :
-<​code>​curl -fsSL https://​download.docker.com/​linux/​ubuntu/​gpg | sudo apt-key add -</code> +<​code ​bash> 
-Vérifiez que vous avez bien installé cette clé en comparant avec les 8 derniers caractères de l'​empreinte ci-dessous : +sudo install -m 0755 -d /​etc/​apt/​keyrings 
-9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 +curl -fsSL https://​download.docker.com/​linux/​ubuntu/​gpg | sudo gpg --dearmor -o /etc/​apt/​keyrings/​docker.gpg 
-Pour cela, taper : +sudo chmod a+r /etc/apt/keyrings/docker.gpg 
-<​code>​$ ​sudo apt-key fingerprint 0EBFCD88 +</​code>​
- +
-    pub   4096R/0EBFCD88 2017-02-22 +
-          Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88 +
-    uid                  Docker Release (CE deb) <docker@docker.com> +
-    ​sub ​  ​4096R/​F273FCD8 2017-02-22</​code>​+
  
 Pointer vers le dépôt de la version "​stable"​ de Docker CE : Pointer vers le dépôt de la version "​stable"​ de Docker CE :
-<​code>​$ sudo add-apt-repository ​+<​code ​bash> 
-       ​"deb [arch=amd64] https://​download.docker.com/​linux/​ubuntu \ +echo 
-       ​$(lsb_release -cs) +"deb [arch=amd64 ​signed-by=/​etc/​apt/​keyrings/​docker.gpg] https://​download.docker.com/​linux/​ubuntu \ 
-       stable"</​code>​+$(lsb_release -cs) stable" ​| \ 
 +sudo tee /​etc/​apt/​sources.list.d/​docker.list > /dev/null 
 +</​code>​
  
 === Installer Docker CE === === Installer Docker CE ===
 Mettre à jour l'​index APT : Mettre à jour l'​index APT :
-<​code>​sudo apt-get update</​code>​ +<​code ​bash>sudo apt update</​code>​ 
-Installer la dernière version de Docker ​CE +Installer la dernière version de Docker ​Engine et containerd ​
-<​code>​sudo apt-get install docker-ce</​code>​+<​code ​bash> 
 +sudo apt install docker-ce ​docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 
 +# puis vérifier que c'est bien installé 
 +docker --version 
 +# et pour docker compose 
 +docker compose 
 +# qui doit vous afficher l'aide de compose 
 +</​code>​
 ==== Pour les versions précédentes ou pour obtenir les dernières versions de Docker ==== ==== Pour les versions précédentes ou pour obtenir les dernières versions de Docker ====
  
Ligne 74: Ligne 93:
 </​code>​ </​code>​
  
-=== Manuellement === +=== Manuellement ===
 (testé avec succès sur Ubuntu 16.04 64Bits) (testé avec succès sur Ubuntu 16.04 64Bits)
  
Ligne 85: Ligne 104:
 </​code>​ </​code>​
  
 +==== Docker Desktop ====
 +Il existe aussi docker-desktop qui inclue beaucoup de chose donc //​compose//,​ //​kubernetes//​… [[https://​docs.docker.com/​desktop/​]] (EN)\\
 +et une interface graphique… MAIS la page [[https://​docs.docker.com/​desktop/​install/​linux-install/​]] (EN) précise bien que sous linux, cela nécessite une VM pour fonctionner,​ ce qui est un peu dommage… libre à vous !
 ===== Configuration ===== ===== Configuration =====
  
Ligne 161: Ligne 183:
 </​code>​ </​code>​
  
 +==== Manipulation de volumes ====
 +Créer un volume
 +
 +<​code>​
 +docker volume create le_nom_du_volume
 +</​code>​
 +
 +Lister les volumes
 +
 +<​code>​
 +docker volume ls
 +</​code>​
 +
 +Supprimer un ou plusieurs volumes (-f pour forcer la suppression)
 +<​code>​
 +docker volume rm le_nom_du_volume1 le_nom_du_volume2
 +</​code>​
 +
 +Supprimer les volumes orphelins vue que avec l'​utilisation progressive de docker il y'aura pas mal de volumes orphelins qui prendraient beaucoup d'​espace disque
 +
 +<​code>​
 +docker volume rm $(docker volume ls -qf dangling=true)
 +</​code>​
  
  
Ligne 181: Ligne 226:
 ==== Automatisation avec un Dockerfile ==== ==== Automatisation avec un Dockerfile ====
  
-Le dockerfile est un fichier texte qui inclut une liste d'​actions à exécuter pour construire une image. ​+Le dockerfile est un fichier texte qui inclut une liste d'​actions à exécuter pour construire une image.
  
 Par exemple une image simpliste de Apache pourrait ressembler à ça : Par exemple une image simpliste de Apache pourrait ressembler à ça :
Ligne 239: Ligne 284:
 La date et l'​heure du conteneur est basée sur celle du système hôte. Cependant il est possible de constater un écart d'​heure entre le système et le conteneur. Ceci est dû au fait que  le conteneur peut-être configuré sur un autre fuseau horaire (timezone). La date et l'​heure du conteneur est basée sur celle du système hôte. Cependant il est possible de constater un écart d'​heure entre le système et le conteneur. Ceci est dû au fait que  le conteneur peut-être configuré sur un autre fuseau horaire (timezone).
  
-Date de votre système et fuseau : +  * Date de votre système et fuseau : <​code>​
-<​code>​+
 date date
-more /​etc/​timezone +cat /​etc/​timezone</​code>​ 
-</​code>​ +  ​* ​Date du conteneur et fuseau : <​code>​ 
-Date du conteneur et fuseau : +sudo docker attach CONTENEUR
-<​code>​ +
-sudo docker attach CONTENEUR ​  #valider par la touche ENTRÉE+
 date date
-more /​etc/​timezone+cat /​etc/​timezone ​</​code>​ ou : <​code>​ 
 +docker exec CONTENEUR bash -c "date ;  cat /​etc/​timezone"​
 </​code>​ </​code>​
-Réglage du fuseau ​dans le conteneur +  * Réglage du fuseau ​depuis ​le conteneur <​code>​ 
-<​code>​+sudo docker attach CONTENEUR ​
 sudo dpkg-reconfigure tzdata sudo dpkg-reconfigure tzdata
 +</​code>​ (se détacher du conteneur : CTRL-p CTRL-q)
 +<note important>​Cette technique ci-dessus n'est pas forcément pertinente/​persistante. Préférer ce qui suit : </​note>​
 +  * Créer un conteneur avec la time Zone configurée. Pour cela utiliser la variable d'​environnement "​TZ"​ (voir [[https://​serverfault.com/​questions/​683605/​docker-container-time-timezone-will-not-reflect-changes|ce post]] ) <​code>​
 +docker run -e TZ=Europe/​Amsterdam debian:​jessie date
 </​code>​ </​code>​
-( se détacher du conteneur ​CTRL-p CTRL-q )+  * Dans le Dockerfile ​ajouter la ligne <​code>​ENV TZ Europe/​Amsterdam </​code>​ ou encore : <​code>​ENV TZ=America/​Los_Angeles 
 +RUN ln -snf /​usr/​share/​zoneinfo/​$TZ /​etc/​localtime && echo $TZ > /​etc/​timezone </​code>​
  
  
Ligne 263: Ligne 311:
 ===== Voir aussi ===== ===== Voir aussi =====
  
 +  * [[:​docker_lamp]] Mettre en place un serveur web (LAMP) à base de conteneurs docker
 +  * [[tutoriel:​comment_installer_gitlab-ce_avec_docker_pour_son_poste_de_travail|Comment installer Gitlab-ce avec Docker pour son poste de travail]]
   * [[https://​linuxfr.org/​news/​docker-tutoriel-pour-manipuler-les-conteneurs|Tutoriels et articles en français sur Docker]]   * [[https://​linuxfr.org/​news/​docker-tutoriel-pour-manipuler-les-conteneurs|Tutoriels et articles en français sur Docker]]
   * [[https://​docs.docker.com/​|Documentation officielle]]   * [[https://​docs.docker.com/​|Documentation officielle]]
Ligne 270: Ligne 320:
 ---- ----
  
-//​Contributeur principal : [[:utilisateur:​chacmool|Chacmool]]//​+//​Contributeur principal : [[:utilisateurs:​chacmool|Chacmool]]//​
  
 //​Contributeurs : // //​Contributeurs : //
   * //​[[:​utilisateurs:​chamblard|chamblard]]//​   * //​[[:​utilisateurs:​chamblard|chamblard]]//​
  • docker.1574243132.txt.gz
  • Dernière modification: Le 20/11/2019, 10:45
  • par bcag2