Préparation du serveur

Avant toute chose, il va déjà falloir récupérer vos accès dans l'e-mail que vous avez dû recevoir.

Ensuite il faut vous connecter en ssh à votre serveur et vérifier que votre serveur est bien à jour :

apt update && apt upgrade -y 

De mon côté, je vais systématiquement installer quelques outils et ajouter un compte à mon nom afin de désactiver l'accès SSH en root :

apt install vim sudo 
useradd -s /bin/bash -m -d /home/monuser monuser
usermod -G monuser,sudo monuser
passwd monuser

⚠️ Avant de désactiver l'accès SSH en root, vérifiez votre nouveau compte.

Ensuite vous pouvez modifier la configuration sshd :

vim /etc/ssh/sshd_config

On recherche la ligne suivante que l'on passe à "no" :

PermitRootLogin no

et on relance ssh :

service sshd restart

Passons maintenant à l'installation de Docker.

Installer le dépôt Docker

Pour la suite du tutoriel, connectez-vous avec votre compte nominatif.

On installe les dépendances pour pouvoir utiliser un dépôt en HTTPS :

sudo apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common

Ensuite on ajoute la clé GPG du dépôt docker-ce :

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

On peut maintenant ajouter le dépôt et mettre à jour apt pour le prendre en compte :

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable" 

Installer Docker

On met à jour l'index d'apt :

sudo apt update

Et on installe Docker :

sudo apt-get install docker-ce docker-ce-cli containerd.io

Vous pouvez ensuite vérifier que tout fonctionne correctement sur votre serveur :

sudo docker run hello-world

Cette commande va lancer votre premier conteneur avec un message que nous allons voir ensemble :

Unable to find image 'hello-world:latest' locally

Je ne possède pas l'image du conteneur hello-world en local. Docker va donc la télécharger depuis son dépôt ( https://hub.docker.com/ ).

latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f
Status: Downloaded newer image for hello-world:latest

L'image est téléchargée pour s'exécuter dans un conteneur :

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Mon conteneur n'avait qu'une mission, afficher ce message ! Voilà, votre dédié fait tourner Docker et vous allez pouvoir vous en servir.

Vous pouvez ensuite sécuriser votre serveur à l'aide d'IPTABLES.