{{tag>sysadmin docker docker-compose}}
====== docker-compose ======
docker-compose fait parti d'un ensemble d'outils de l'environnement Docker qui comprend:
* docker engine: le moteur docker
* doc
ontainer) pour une application, un programme, une commande. Le conteneur, regroupe ou empaquette l'appl... nctionne en client/serveur: l'utilisateur via les commandes, lance le client qui contacte le serveur (s... Par défaut, le container est une bulle fermée, la commande expose permet aux conteneur
mapper un port d... endances nécessaires à l’exécution correcte de la commande ou du programme. Le container utilise l'imag
kerfile permettent toutes les deux de définir une commande initiale présente dans l'image qui sera invo... alpine
FATA[0000] Error response from daemon: No command specified
</code>
<note>
De nombreuses imag... ilisés lors de l'appel à docker run).
</note>
La commande définie dans le Dockerfile peut être redéfinie sur la ligne de commande en spécifiant un argument après le nom de l'
Les réseaux existants peuvent être listés via la commande **''docker network ls''**. Succinctement on ... éseau. Celui-ci peut être définit sur la ligne de commande via l'option **%%--network%%**. On peut égal...
===== Liaison entre conteneurs =====
Pour faire communiquer des conteneurs en interne, on peut s'appu... e>
Le fichier **/etc/hosts** du client est alors complété avec l'IP du conteneur serveur, et les noms
image:
* A partir d'un conteneur existant et la commande docker container save, facile à mettre en place mais compliqué à maintenir.
* From scratch, plus complexe et difficile à maintenir.
* Via un Dockerfile, un... , toujours en premier
RUN # Permet d'exécuter une commande
CMD # Commande exécutée au démarrage du cont
{{tag>sysadmin dev docker dockerfile commande}}
====== Dockerfile : La commande COPY ======
Le Dockerfile contient les instructions permetta... de fichier initial visible dans le conteneur. La commande **COPY** permet d’insérer un fichier provena... ctement le propriétaire sans appeler une deuxième commande qui introduit un layer supplémentaire dans l
obtenu, on pourra l'extraire du conteneur avec la commande **docker cp** puis l'utiliser pour générer u... timeout 70;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
#charset koi8-r;
#access_log /var/log/ngin
odo}}
====== Déclaration des réseaux avec docker-compose ======
Sans déclaration particulière, le ''docker-compose'' crée un réseau dédié au sein duquel les ser... larer un NAT.
Pour exemple, ci-dessous le docker-compose déclare 2 services
<file YAML>
</file>
<code bash>
# Instanciation des services
docker-compose up -d
Creating network "mqtt_default" with th
te par le driver loki ======
Les services docker-compose sont paramétrés pour communiquer avec le service loki mais aucun log n'est intégré dans la base Lo... 480b3058587a7643757da8c32bc043844f6ec5db621236517 component=client host=loki:3100 msg=\"final error sen... 192572c
</file>
Le message indique une erreur de communication avec l’hôte de destination. Il faut not
conteneur depuis l’intérieur ======
Via docker-compose on peut facilement démarrer l’exécution de pl... rvice via l'argument **%%--scale%%**. Par défaut, comme toutes les instances du service partagent la même configuration elles adoptent le même comportement:
<code bash>
docker-compose up -d --scale service_1=3 --scale service_n=5
</code>
Dans cet
s une image Docker. Pour cela on peut utiliser la commande **docker create** qui se charge de créer un ... my_image:version
</code>
===== Obtenir la liste complète des fichiers de l'archive =====
Pour obtenir la liste complète des fichiers de l’archive, on peut utiliser les commandes **docker container export** et **tar**:
<c
ce type**;
* La liaison entre conteneur via la commande **%%--link%%** n'est pas supportée dans ce type de réseau;
* Le port mapping via la commande **%%--publish%%** n'est pas interprétée dans... é aux interfaces de l'hote. Le port mapping de la commande **%%--publish%%** n'a donc aucun effet.
Les... conteneurs présents dans un même réseaux peuvent communiquer entre eux ou avec l’hôte. Si l’hôte accèd
{{tag>sysadmin software docker docker-compose syntaxe}}
====== docker-compose: définition des volumes ======
Attention à la version de docker-compose déclarée en entête. Pour vérifier quelles ver... de Docker consulter la page [[https://docs.docker.com/compose/compose-file/]].
Pour afficher la versio
when manual pages are not available.
</file>
La commande **apt-file** permet d'identifier le paquet c...
man-db: /usr/share/man/man1/man.1.gz
</code>
La commande apt-file nous indique que la documentation d... **man-db**. Le paquet est cependant déjà installé comme le montre le retour de la commande **dpkg** ci-dessous:
<code bash>
dpkg -l | grep man-db
ii man-d