Comment installer docker¶
Pour installer docker rien ne vaut mieux que la docs officiel. Evidemment choissisez votre OS. Pour ceux qui ont la flemme de se balader entre de multiple site web, voici les commandes à copier-coller pour les principales distributions, ont installes que la dernières version possible pour notre OS, si vous devez vous restreindre à une version spécifique, hop hop et go sur la doc officiel.
Installer sur Debian¶
Commande pour installer sur Debian et dérivé proche.
Info
Pour les distributions se basant sur Ubuntu c'est une autre façon, mais bon à part pour faire du kubernetes, aucune raison d'utiliser Ubuntu en tant que serveur. Canonical met beaucoup de merde et de problème de sécurité à l'intérieur
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1) -y
sudo apt update
sudo apt install ca-certificates curl -y
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
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
sudo systemctl enable --now docker
sudo usermod -aG "$USER"
Installer sur la famille RedHat¶
sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine podman runc -y
sudo dnf -y install dnf-plugins-core -y
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo -y
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
sudo systemctl enable --now docker
sudo usermod -aG "$USER"
Installer via Ansible¶
Si vous devez installer Docker sur des miliers de machines, automatiser cette tâche est très utiles. C'est pour ça que j'ai écris un role ansible que vous pouvez importer qui est compatible multi OS.
- Ajouter la dépendances dans le fichier
requirements.yml
--- # requirements.yml
roles:
# autres roles
- name: Docker Engines
src: https://gitlab.com/Lhokamn/ansible-docker-engine.git
scm: git
version: main
...
- Télécharger le role localement
- Utilisation du role dans le playbooks
--- # playbook.yml
- hosts: all
# vars, pre_tasks
roles:
## autre rôles
role: Docker Engines
vars:
docker_user: "cclaudel" # nom d'utilisateur à rajouter dans le group docker
...
Post installation¶
Comme le compte root n'est pas à utiliser, si vous avez suivi les commandes fournis, l'utilisateur qui a exécuter les commandes a été ajouter dans le groupe docker de la machine. mais pour que ce soit effectif il faut se déconnecter et se reconnecter pour recharger l'environnement.
Pour vérifier que tout fonctionne, on va télécharger une simple image docker qui comme tout bon projet commence par Hello world !
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4f55086f7dd0: Pull complete
Digest: sha256:96498ffd522e70807ab6384a5c0485a79b9c7c08ca79ba08623edcad1054e62d
Status: Downloaded newer image for hello-world:latest
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/