# Direction les docks numérique Suite à mon précédent [article sur l’auto-hébergement](https://techsystem.fr/direction-les-docks-numerique/), voici la suite des articles que je vais faire sur ce thème. Nous allons maintenant procéder à l’installation de Docker, Docker Compose et Portainer. Libre à vous d’installer l’intégralité ou seulement une partie de ces outils : seul Docker est obligatoire. Docker Compose et Portainer, quant à eux, sont facultatifs et indépendants l’un de l’autre. > **Mise à jour du 8.6.23 : Correction de quelques coquille et ajout de l'installation du plugin docker-compose. Je pars du principe que vous êtes sur une machine déjà fonctionnelle et nouvellement installée sous Ubuntu. Docker nous permettra d’orchestrer les conteneurs. Docker Compose sera particulièrement utile pour configurer les conteneurs, puisque cela se fera via un fichier YAML. Cette approche offre une gestion plus précise et flexible des paramètres. Portainer ajoute une couche visuelle pour faciliter la gestion des conteneurs Docker. Il peut être utilisé indifféremment avec ou sans Docker Compose. ## Installation de docker L'installation de Docker est relativement simple. Vous avez le choix entre deux méthodes avec une installation pas à pas (pour suivre chaque étape), ou l’exécution d’un script automatisé. 1 . L'installation pas à pas ```shell sudo apt update sudo apt-get install curl apt-transport-https lsb-release gnupg ca-certificates software-properties-common ``` Pour les distributions base Ubuntu : ```shell curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ``` Pour les distributions base Debian : ```shell # Ajout de la clé GPG officielle de Docker sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Ajout du dépôt Docker : echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` On passe à l'installation des paquets de Docker. ```shell sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` On vérifie si Docker est bien opérationnel. ```shell sudo systemctl status docker ``` ![Etat de docker](etat-docker.png "Etat de docker") 2. Installation de docker en une seule commande ```shell curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh ``` Et on termine par l'ajout de votre utilisateur au groupe Docker si vous souhaitez éxecuter les commandes sans passer par sudo. ```shell sudo usermod -aG docker username ``` ## Installation de docker-compose > **Petit changement, si vous installez docker-compose-plugin cette partie n'est pas nécessaire. Pour Docker Compose, nous allons utiliser un script que j’ai développé. Récupérez-le, puis exécutez-le en précisant la version souhaitée (la dernière en date est la 2.14.2). [GitHub - Mise à jour automatiser de docker compose avec intéraction](https://github.com/Wolf117Warrior/updater_docker_compose.git) Vous pouvez créer la commande docker-compose en créant le lien symbolique entre le script et le dossier /usr/bin : ```shell sudo ln -s ~/vers/votre/fichier/docker-compose /usr/bin/docker-compose ``` Si tout est bon, alors lorsque vous lancerez la commande **docker-compose version**, vous obtiendrez ce résultat. ![version de docker](docker-version.png "version de docker") Lors de nouvelle version, vous n’aurez plus qu’à lancer le script et indiqué la version. ## Installation de Portainer À présent, que docker et docker-compose sont installés sur votre serveur, on va procéder à l’installation de Portainer. Il n'est bien sûr pas indispensable, mais utile pour certaines tâches qui vous éviteront de passer par un CLI. Si vous n’êtes pas du tout familier avec les lignes de commande, alors Portainer est fort utile. On va commencer par la création d'un dossier qui rassemblera toutes vos applications. Et dans chacun de ces dossiers d'appli, il vous faut créer un dossier ***data*** (pour le stockage des données) et un fichier ***docker-compose.yml*** ```bash mkdir ~/docker_apps/ • data/ • docker-compose.yml ``` ![dossier app de docker](liste-dossier-docker.png "dossier app de docker") Dans votre dossier Portainer, créer le fichier docker-compose.yml et C/C le contenu suivant dans votre fichier : ```yaml services: portainer: container_name: portainer image: portainer/portainer-ce restart: unless-stopped command: -H unix:///var/run/docker.sock ports: - 9000:9000 volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./data:/data ``` Composition du fichier : ports : - 9000:9000 ⇒ - port de sortir (celui que vous modifiez) : port de l’app (celui qui est à laisser par défaut) Et lancer la commande de création et lancement à la racine du dossier de l’application : ```shell docker compose up -d ``` Il ne vous reste plus qu’à vous rendre sur le lien suivant avec l’IP et le port choisi. `http://SERVER_IP:PORT/` ![portainer-01](portainer-01.png "portainer-01") ![portainer-02](portainer-02.png "portainer-02") ![portainer-03](portainer-03.png "vportainer-03") ![portainer-04](portainer-04.png "portainer-04") ![portainer-05](portainer-05.png "portainer-05") ![portainer-06](portainer-06.png "portainer-06") Source :  - [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/) - [Install Docker Engine on Debian](https://docs.docker.com/engine/install/debian/)