GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Docker

Docker est un moteur open source extensible optimisé par Linux Containers qui automatise le déploiement d'applications sous forme de conteneurs portables, légers et autonomes. Pour les besoins de ce didacticiel, nous supposerons que vous avez suivi les étapes décrites dans notre Configuration et sécurisation d'une instance de calcul, que votre système est à jour et que vous vous êtes connecté à votre Linode en tant que root via SSH.

Installation

Pour les besoins de ce guide, nous allons vous montrer comment installer Docker sur Ubuntu 12.04 et CentOS 6.4 Docker fournit des référentiels pour chacune de ces distributions, ce qui facilite l'installation.

Ubuntu 12.04 64bit

Ici, nous allons ajouter le référentiel maintenu par Docker pour Ubuntu et installer le logiciel.

  1. Docker est disponible sous forme de package dans les référentiels Ubuntu de Docker, mais uniquement pour 64 bits. Tout d'abord, vous devrez ajouter la clé du référentiel Docker en utilisant apt-key :

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
    
  2. Ajoutez le référentiel Docker à vos sources apt :

    echo "deb http://get.docker.io/ubuntu docker main" | sudo tee /etc/apt/sources.list.d/docker.list
    
  3. Exécutez ce qui suit pour apt-get update et installez lxc-docker :

    sudo apt-get update
    sudo apt-get install lxc-docker
    
  4. Pour vérifier que l'installation s'est terminée avec succès, lancez un exemple de conteneur Ubuntu. Cette commande récupérera automatiquement toutes les images manquantes, exécutera le conteneur et fournira une session bash interactive :

    sudo docker run -i -t ubuntu /bin/bash
    

    Le résultat devrait ressembler à :

    # docker run -i -t ubuntu /bin/bash
    Unable to find image 'ubuntu' (tag: latest) locally
    Pulling repository ubuntu
    8dbd9e392a96: Download complete
    b750fe79269d: Download complete
    27cf78414709: Download complete
    [email protected]:/#
  5. Pour quitter le conteneur, tapez exit .

CentOS 6 64bit

Docker est disponible sur le référentiel EPEL en tant que docker-io package pour 64 bits uniquement.

  1. Pour ajouter le référentiel EPEL, installez le dernier package epel-release.

  2. Pour installer Docker, exécutez la commande suivante :

    sudo yum -y install docker-io
    
  3. Pour démarrer le démon Docker, appelez service :

    sudo service docker start
    
  4. Si vous souhaitez que le démon Docker démarre au démarrage, exécutez la commande suivante :

    sudo chkconfig docker on
    
  5. Pour vérifier que l'installation s'est terminée avec succès, lancez un exemple de conteneur Fedora. Cette commande récupérera automatiquement toutes les images manquantes, exécutera le conteneur et fournira une session bash interactive :

    sudo docker run -i -t fedora /bin/bash
    
  6. Pour quitter le conteneur, tapez exit .

Que puis-je faire avec Docker ?

Docker permet aux utilisateurs de regrouper leurs applications et configurations dans des images légères pour un déploiement sous forme de conteneurs portables.

Bonjour le monde

Pour exécuter un conteneur Docker qui affiche "hello world", exécutez la commande suivante :

docker run ubuntu /bin/echo hello world

Il devrait renvoyer hello world .

Cela indique à Docker de faire un certain nombre de choses :

  1. Si l'image (Ubuntu) n'existe pas déjà localement, téléchargez-la depuis l'index Docker.
  2. Créez un nouveau conteneur avec l'image Ubuntu de base avec un système de fichiers en lecture-écriture et une interface réseau.
  3. Attribuez une adresse IP au conteneur ; configurer NAT pour transférer le trafic vers et depuis le conteneur.
  4. Exécutez la commande /bin/echo hello world , et imprimez le résultat.
  5. Après avoir terminé le processus principal, le conteneur se fermera.

Écrire un Dockerfile pour Nginx

Lors de la création d'une image, Docker suit le jeu d'instructions dans un fichier nommé Dockerfile . Notez que le fichier doit être nommé Dockerfile et tous les fichiers ou dossiers requis par le Dockerfile doivent se trouver dans le même répertoire que le Dockerfile lui-même.

Exécuter un programme comme echo dans un conteneur Docker est assez simple. Cependant, pour les programmes qui agissent en tant que serveurs, tels que Nginx, vous devrez vous assurer que le programme est configuré pour ne pas s'auto-démoniser.

Voici un exemple de Dockerfile pour Nginx :

FROM        ubuntu:12.04
MAINTAINER  Jon Chen "[email protected]"

RUN         echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN         apt-get update
RUN         apt-get install -y nginx

RUN         echo "\ndaemon off;" >> /etc/nginx/nginx.conf
VOLUME      /etc/nginx/sites-enabled
VOLUME      /var/log/nginx

EXPOSE      80
CMD         ["nginx"]

La syntaxe Dockerfile ressemble à ceci :

# Comment
INSTRUCTION arguments

Docker parcourt les instructions Dockerfile de haut en bas dans l'ordre. La première instruction doit être FROM , qui précise l'image de base à partir de laquelle vous souhaitez construire votre nouvelle image :

FROM ubuntu:12.04

Cela définit l'image officielle d'Ubuntu 12.04 comme image de base. Vous souhaiterez également utiliser l'instruction MAINTAINER pour définir l'auteur de l'image :

MAINTAINER Jon Chen "[email protected]"

Ensuite, le RUN L'instruction exécutera des commandes sur l'image et validera les résultats. Chaque commit est enregistré et utilisé pour l'instruction suivante. Par exemple, ce RUN remplace le contenu de /etc/apt/sources.list dans l'image avec deb http://archive.ubuntu.com/ubuntu precise main universe :

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list

La chose importante à retenir pour les programmes tels que Nginx est de s'assurer que le programme ne s'exécute pas en tant que démon. Le comportement par défaut de Nginx en tant que démon consiste à débrancher les processus de travail, puis à quitter le processus maître. Comme Docker ne surveille que le PID du processus d'origine, le conteneur s'arrêtera prématurément au lieu de s'exécuter de manière persistante. Pour désactiver la démonisation, ajoutez la directive de configuration démon off à /etc/nginx/nginx.conf :

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

Pour exposer un port à l'intérieur du conteneur vers l'extérieur du conteneur, utilisez l'instruction EXPOSE :

EXPOSE 80

L'instruction CMD définit la commande par défaut à exécuter au démarrage du conteneur. Dans notre exemple, nous voulons exécuter Nginx :

CMD ["nginx"]

Par défaut, les conteneurs Docker n'ont pas de stockage persistant. Afin de partager des données entre conteneurs, utilisez la fonctionnalité VOLUME :

VOLUME /etc/nginx/sites-enabled
VOLUME /var/log/nginx

Afin de monter un répertoire de l'hôte sur le conteneur, vous devrez spécifier le répertoire hôte, le répertoire du conteneur correspondant et les autorisations de répertoire dans la ligne de commande lorsque vous exécutez le conteneur :

-v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro].
If "host-dir" is missing, then docker creates a new volume.

Pour créer cette image, exécutez la commande suivante dans le même répertoire que le Dockerfile. Vous pouvez également spécifier un référentiel et une balise pour votre image avec -t repo/tag :

docker build -t bsdlp/nginx .

Exécutez la commande suivante pour ajouter /etc/nginx/sites-enabled et /var/log/nginx en tant que volumes de l'hôte au conteneur, démarrez le conteneur en tant que démon et exposez le port 80 du conteneur en tant que port 80 sur l'hôte :

docker run -d -p 80:80 -v /etc/nginx/sites-enabled:/etc/nginx/sites-enabled -v /var/log/nginx:/var/log/nginx bsdlp/nginx

Plus d'informations

Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.

  • Guide de démarrage de Docker
  • Docker sur GitHub
  • Index officiel des images Docker

Docker
  1. Comment installer Docker sur Ubuntu 16.04

  2. Comment installer Docker sur Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  3. Problèmes Docker dans Ubuntu 20.04 ?

  4. Installation de Docker (Ubuntu)

  5. Comment installer Docker sur Ubuntu 18.04 ?

Comment installer Bitwarden sur Ubuntu 20.04

Comment installer Docker sur Ubuntu 20.04, 18.04, 21.04

Installer Portainer avec Docker sur Ubuntu

Comment installer Docker sur Ubuntu 14.04

Comment installer Docker Compose sur Ubuntu

Comment installer Docker sur Ubuntu 18.04