Wiki adminsys - Cebador.fr

Wiki d'administration systèmes et réseaux.
Simples notes personnelles et non réelle documentation exhaustive.
Donc désolé pour les coquilles et les inexactitudes.
Doc sous licence GNU FDL 1.3

Outils pour utilisateurs

Outils du site


docker

Docker

Commandes de base

https://docs.docker.com/engine/reference/commandline/docker/

  • Lister toutes les images présentes sur la machine :
    docker image ls
  • Lister tous les container lancés :
    docker container ls
  • Lister tous les containers même les expirés :
    docker container ls --all
  • Stopper un container :
    docker container stop ID_IMAGE
  • Supprimer tous les containers éteints :
    docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm

Installation

Utilisation

Création d'une image

Limite de pulls

Pour un user sans authentification sur Docker hub, il y a un plafond glissant de 100 pulls toutes les 6h et par IP. Il est possible de connaître le quota de pulls restant :

TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest

https://docs.docker.com/docker-hub/download-rate-limit/#how-can-i-check-my-current-rate

Gestion des containers

  • Ouvrir un bash dans un container :
    docker exec -ti nom_du_container_ou_ID bash
  • Copier du contenu dans un répertoire du container :
    docker cp fichier/dossier nom_container:repertoire/container
  • Connaître l'espace disque utilisé par les containers, volumes et images :
    docker system df -v

Relancer un service dans un container

Option 1 : se connecter dans le container et relancer avec systemctl

Option 2 :

  1. Se connecter dans le container
  2. Installer procps :
    apt-get update && apt-get install procps
  3. Faire un ps aux pour voire le PID du process à relancer
  4. Relancer le service avec kill :
    kill -USR2 PID_SERVICE

Firewall

Lors de son déploiement, Docker met en place des règles Iptables pour aiguiller le trafic qui lui est destiné. Ces règles passent par la table FORWARD sans passer la table FILTER. Donc cela court-circuite les éventuels filtres mis en place.

Il est donc essentiel de limiter le bind des container à 127.0.0.1 pour éviter qu'ils ne soient accessibles publiquement.

Il est possible également de modifier les règles Iptables de Docker pour interdire le trafic ne venant pas de telle ou telle adresse. RTFMhttps://docs.docker.com/network/packet-filtering-firewalls/#restrict-connections-to-the-docker-host

Docker Compose

Installation

Utilisation

Commandes de base : https://docs.docker.com/compose/reference/

Docker file v3 : https://docs.docker.com/compose/compose-file/

Les containers sont comme des mini VM à part entière. Leur mise en réseau se fait via DHCP. Ils peuvent être connectés entre eux via DNS interne. Par exemple, pour lier un container Nginx et un container PHP, mettre dans le vhost.conf en location php “fastcgi_pass php:9000”

Lancer docker-compose et faire afficher le code de retour d'un service :

docker-compose up --exit-code-from SERVICE

Docs

docker.txt · Dernière modification : de Administrateur