Docker-Compose détaillée

Docker-Compose


  • article Annuaire

1. Docker-Compose ce que?

Docker Docker-Compose projet officiel est un projet open source, responsable de la mise en page rapide du groupe de conteneurs Docker.
Docker-Compose sera géré par un conteneur divisé en trois niveaux, à savoir le projet (projet), le service (service) et le conteneur (container). Tous les fichiers (docker-compose.yml, étend le fichier variable fichier ou de l' environnement, etc.) Docker-Compose exécuter un répertoire de projet, en l'absence de nom de projet spécial désigné est le nom du répertoire courant. Un projet qui peut comprendre une pluralité de services, chaque conteneur d'image défini exécute, en fonction de paramètres. Un service qui peut inclure plusieurs instance de conteneur, Docker-Compose ne résout pas le problème de l' équilibrage de charge, et ont donc besoin d'utiliser d' autres outils pour réaliser la découverte de service et l' équilibrage de charge.
Docker-Compose les fichiers de configuration du projet par défaut docker-compose.yml, peuvent COMPOSE_FILE par la variable d'environnement ou d'un paramètre -f fichier de configuration personnalisée, qui définit plusieurs services qui dépendent de chaque service et exécuter un conteneur.
Dockerfile utiliser un fichier de modèle, ce qui permet aux utilisateurs de définir facilement un seul conteneur d'application. Au travail, rencontrent souvent des cas pour accomplir une tâche nécessitant plusieurs conteneurs entre eux. Par exemple, pour mettre en œuvre un projet Web, en plus de services Web conteneur lui - même, souvent aussi besoin d'ajouter les services de base de données back-end conteneur, même y compris les conteneurs d' équilibrage de charge.
Compose permet à l'utilisateur de définir un groupe de conteneurs associés par un seul fichier modèle docker-compose.yml (format YAML) pour un projet (projet).
projet Docker-Compose écrit par Python, vous appelez l'API de service Docker fourni pour gérer le conteneur. Par conséquent, tant que la plate - forme d'exploitation pour soutenir API Docker, vous pouvez gérer à orchestrer l' utilisation Compose sur celui - ci.

2. Docker-Compose installer désinstaller

Si vous utilisez la commande suivante pour installer échoue, voir la version python:

$ yum install python-pip

$ pip install docker-compose

solution:

$ yum install python3-pip

$ pip3 install docker-compose

Voir l'installation:

$ docker-compose -version

Désinstaller:

$ pip3 uninstall docker-compose

3. Docker-Compose commandes couramment utilisées

3.1 Docker-Compose format de commande

docker-Compose [-f ...] [options] [COMMANDE] [ARGS ...]

-f FICHIER --file spécifier Compose un fichier modèle, la valeur par défaut est docker-compose.yml

-p --project nom NOM
spécifier un nom de projet, le nom du répertoire par défaut en cours pour le projet

sortie -verbose plus d'informations de débogage

-v, -version Version imprimable et la sortie

niveau d'enregistrement défini -log niveau LEVEL (DEBUG, INFO, AVERTISSEMENT, ERROR, CRITICAL)

3,2-docker composer jusqu'à

docker-composer jusqu'à [options] [SERVICE -Scale = NUM ​​...] [SERVICE ...]

Les options incluent:

service de conteneurs -d en arrière-plan

-no-couleur est pas une couleur différente pour distinguer la sortie de commande de service

-no-DEPS ne pas démarrer les services de conteneurs liés

-force-Recréer forcé de recréer le conteneur ne peut pas être utilisé en conjonction avec -no-Recréer

-no-Recréer Si le conteneur existe déjà, il est pas recréés, ne peut pas être utilisé avec le -force-Recréer

-No-build service ne miroir construit automatiquement supprimé l'
image -build service de construction avant de commencer récipient
-abort-on-conteneur sortie arrêt tous les récipients, un récipient est arrêtée le cas échéant, ne peut pas être utilisée avec -d

-t, récipient -timeout TIMEOUT est arrêtée lorsque le délai d'attente (par défaut 10 secondes)

-remove orphelins services de conteneurs suppression qui ne sont pas définis dans les documents Compose

3.3 docker-compose ps

ps docker-Compose [options] [ SERVICE ...]
énumère tous les éléments dans un conteneur

3.4 docker-Compose arrêt

arrêt docker-Compose [options] [SERVICE ...]

Les options incluent

-t, récipient -timeout TIMEOUT est arrêtée lorsque le délai d'attente (par défaut 10 secondes)

docker-Compose arrêt
arrêt du conteneur est en cours d' exécution, vous pouvez recommencer en début docker-Compose

3,5-docker composer -h

docker-Compose -h
Voir Aide

3,6-docker composer vers le bas

vers le bas docker-Compose [options]
Arrêter et supprimer le conteneur, le réseau, un miroir de volume.

Les options incluent:
-rmi du type, retirez le miroir, le type doit être: tous, tous Compose Supprimer miroir défini dans le fichier, local, supprimer l'image miroir appelé vide

volumes de données sur le contenant et attaché à la -v anonyme, -volumes, supprimer les déjà définis dans les documents Compose

-Remove orphelins, les services de conteneurs suppression qui ne sont pas définis dans Compose la
descendante docker-Compose

Retirez tous les conteneurs et désactiver liés au réseau

3,7-docker composer vers le bas

journaux docker-Compose [options] [ SERVICE ...]
regard sur la sortie du conteneur de service.

Par défaut, docker-Compose la sortie sera différents services utilisent des couleurs différentes pour distinguer. La couleur peut être fermé par -NO couleurs.

grumes de docker-Compose
pour afficher la sortie du conteneur de service

sortie du journal de trace -f

3,8-docker composer bulid

construire docker-Compose [options] [ touche -build-arg = val ...] [SERVICE ...] la
construction (reconstruction) Projet de conteneur de service.

Les options incluent:

la compression gzip -compress en construisant et environnement vers le bas

-force-rm supprimer le processus de construction temporaire des conteneurs

Aucune accumulation de cache processus de mise en miroir cache

-Pull toujours essayer d'obtenir une version mise à jour de l'image en tirant des opérations

-m, récipient -Memory MEM est prévu pour la construction de la taille de la mémoire

clé -build-arg = Service val fourni variable temps de construction
conteneur de service une fois construit, apportera un nom de tag. Vous pouvez toujours courir construire docker-Compose dans le cadre du projet de reconstruction du service d'annuaire

3.9 docker-Compose traction

traction docker-Compose [options] [ SERVICE ...] en
fonction miroir service de traction.

Les options incluent:

-ignore-pull-échecs, en ignorant le miroir lors de l'erreur de traction

-parallel, tirer simultanément une pluralité de miroirs

quiet, le processus ne tire pas les informations de progression de l'impression miroir

docker-Compose traction
miroir dépendant du service de traction

4.0 docker-Compose restart

docker-Compose restart [options] [ SERVICE ...]
pour redémarrer le projet en service.

Les options incluent:

-t, -timeout TIMEOUT, un arrêt du conteneur avant le redémarrage de temporisation spécifié (par défaut 10 secondes)

docker-Compose restart
pour redémarrer le projet au service

4,1-docker composent rm

rm docker-Compose [options] [ SERVICE ...]
supprime tous les navires de service (état d'arrêt).

Les options incluent:

-f, -force, forcé de supprimer, y compris l'état non-stop du conteneur

-v, récipient de suppression monté volumes de données

rm docker-Compose
effacer tout récipient de service (état d'arrêt). Recommandé première Compose exécution Docker
commande d' arrêt pour arrêter le navire.

début 4.2 docker-Compose

début docker-Compose [SERVICE ...]

docker-Compose départ
pour démarrer le conteneur de service qui existe déjà.

4,3 docker-run composer

docker-Compose course [options] [ VOLUME -v ...] [-p PORT ...] [-e KEY = VAL ...] SERVICE [COMMANDE] [ARGS ...]
exécuter une commande sur le service spécifié.

run-docker composer ubuntu ping www.baidu.com
exécuter une commande ping dans le conteneur spécifié.

4,4-échelle docker Compose

échelle docker-Compose web = 3 db = 2
le nombre de récipients prévus pour exécuter le service spécifié. Pour définir le nombre de paramètres par num service =

4,5-docker composer pause

docker-Compose pause [SERVICE ...]
de suspendre un service de conteneurs

4.6 tuer docker-Compose

tuer docker-Compose [options] [ SERVICE ...]
en transmettant un signal d'arrêt de force les services de conteneurs SIGKILL.
signal de support transmis à travers -s spécifiée paramètres, tels que l' envoi d' un signal de commande SIGINT:
Docker-Compose de la SIGINT du kill

4,7-docker composer config

config docker-Compose [options]
vérifier la configuration du fichier Compose et vue.

Les options incluent:

-resolve-image-digère l'image d'étiquette marquée comme un condensé

-q, vérifiez que la configuration quiet, n'est pas sortie. Lorsqu'il est correctement configuré, ne émet, lorsque les erreurs de configuration du fichier, la sortie d'un message d'erreur

-Services nom du service d'impression, un par ligne

-volumes impression nom du volume de données, une par ligne

4,8-docker composer créer

docker-Compose créer [options] [ SERVICE ...]
pour créer un conteneur pour le service.

Les options incluent:
-force-le Recréer: recréer le conteneur, même si la configuration n'a pas changé et miroirs, ne sont pas compatibles avec les paramètres -Pas-Recréer

-no-Recréer: Si le conteneur existe déjà, ne pas besoin de recréer, n'est pas compatible avec les paramètres -force-Recréer

-no-build: ne pas créer un miroir, même si elle est manquante

-build: Avant de créer un conteneur, image générée

4,9-docker composer exec

SERVICE COMMANDE [ARGS ...] exec docker-Compose [options]

Les options incluent:

-d mode de séparation, en cours d'exécution dans la commande d'arrière-plan.

-privileged obtenir des privilèges.

USER -user Indique que l'utilisateur exécute.

-T allocation Désactiver ATS, par défaut attribution docker-Compose exec ATS.

-index = index, lorsqu'un service a une pluralité de récipients, ce paramètre peut être trouvé à un service dans le service, par exemple: docker-Compose exec -index = 1 web / bin / bash, service Web comprenant une pluralité de récipients

5,0 orifice docker-Compose

Port-docker composer [options] SERVICE PRIVATE_PORT
affichage port commun d'un mappage de port de conteneurs.

Les options incluent:

-Protocole = proto, le protocole de port désigné, TCP (par défaut) ou UDP

-index = index, s'il y a des récipients de service multiples sont d'accord, les commandes spécifiées conteneur d'objet d'index (par défaut 1)

5.1 docker-Compose poussée

pousser docker-Compose [options] [ SERVICE ...]
service push en fonction du miroir.

Les options incluent:

-ignore-push-échecs ne tiennent pas compte des erreurs lors d'un miroir push

5,2-docker composer arrêt

arrêt docker-Compose [options] [ SERVICE ...]
affiche la progression de chaque situation en cours d' exécution de conteneurs.

5,3-docker composer uppause

docker-Compose Réactiver [SERVICE ...] la
récupération dans un service de l' Etat en suspension.

4. Docker-composer le fichier modèle

4.1 Docker-composer le profil de fichier modèle

Compose permet à l'utilisateur de définir un groupe de conteneurs associés par un fichier modèle docker-compose.yml (format YAML) pour un projet (projet).
Composer un fichier modèle est la définition du fichier service et les volumes réseau YAML. Composez un fichier modèle dans le chemin par défaut est docker-compose.yml dans le répertoire courant, vous pouvez utiliser .yml ou .yaml comme l'extension de fichier.
fichier modèle standard Docker-Compose doit contenir la version, les services, les réseaux de trois parties, les services les plus critiques et les réseaux est en deux parties.

version: '2'
services:
  web:
    image: dockercloud/hello-world
    ports:
      - 8080
    networks:
      - front-tier
      - back-tier
 
  redis:
    image: redis
    links:
      - web
    networks:
      - back-tier
 
  lb:
    image: dockercloud/haproxy
    ports:
      - 80:80
    links:
      - web
    networks:
      - front-tier
      - back-tier
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
 
networks:
  front-tier:
    driver: bridge
  back-tier:
    driver: bridge

Il y a trois Cadrez versions Version 1, 2 Version, Version 3, Compose distinguer version 1 et 2 (Compose 1.6.0 +, Docker Engine 1.10.0+). Version 2 supports plus d'instructions. La version 1 sera abandonnée à l'avenir.

4.2 l'image

image est une image miroir ID ou le nom des services spécifiés. Si le miroir n'existe pas localement, Compose va essayer de tirer le miroir.

services:
    web:
        image: hello-world

4.3 build

En plus du service en fonction de l'image spécifiée peut également être basée sur une Dockerfile, tout en utilisant pour commencer la mise en œuvre des tâches de construction, balise de construction est la construction, vous pouvez spécifier le chemin d'accès au dossier dans lequel Dockerfile. Compose utilisation Dockerfile construira automatiquement le miroir, puis utiliser l'image pour démarrer le conteneur de service.

build: /path/to/build/dir

Il peut être un chemin relatif, aussi longtemps qu'il peut lire la détermination du contexte Dockerfile.

build: ./dir

Réglage racine de contexte, puis soumis au répertoire spécifié Dockerfile.

build:
  context: ../
  dockerfile: path/of/Dockerfile

la construction est un répertoire, si vous souhaitez spécifier les besoins de fichiers Dockerfile pour spécifier l'utilisation de la balise de dockerfile dans la balise de construction de balise enfant.
Si vous spécifiez l'image et de construire deux étiquettes en même temps, le miroir Compose construit et le nom de la valeur spécifiée nom de l' image miroir.

4.4 contexte

options de contexte peuvent être le chemin du fichier Dockerfile, peut aussi être un lien vers une URL dépôt git, lorsque la valeur de fournir un chemin relatif, le chemin est résolu par rapport à écrire le fichier, ce répertoire est envoyé dans le contexte du démon Docker

build:
  context: ./dir

4.5 dockerfile

Utilisez dockerfile fichiers à construire, vous devez spécifier le chemin de construction

build:
  context: .
  dockerfile: Dockerfile-alternate

4.6 commond

commande d'utilisation peut remplacer la commande par défaut est exécutée après que le navire a commencé.

command: bundle exec thin -p 3000

4.7 container_name

Compose format nom du conteneur est: <nom du projet> <nom du service> <numéro>
peut personnaliser le nom du projet, le nom du service, mais si vous voulez le plein contrôle du nom du navire, vous pouvez utiliser la balise pour indiquer:

container_name: app

4.8 depends_on

Lorsque vous utilisez Compose, le plus grand avantage est de jouer une petite commande de démarrage, mais l'ordre du projet général a commencé par le conteneur est nécessaire, si le démarrage direct de haut en bas du conteneur, car le conteneur inévitablement dépendra de la question n'a pas pu démarrer. Telles que le démarrage d'un conteneur d'application, le conteneur utilisera la base de données et de quitter parce qu'ils ne peuvent quand nous ne commençons pas le conteneur de base de données. label depends_on pour résoudre dépendante du container, le problème a commencé la

version: '2'
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres

Au-dessus de fichier YAML définit le conteneur d'abord commencer Redis et db deux services, et enfin démarrer le service Web.

4,9 PID

pid: « host »

Le mode PID PID est en mode hôte, partagé avec l'espace de noms processus du système hôte. Pid sera en mesure d'utiliser l'accès balise conteneur et manipuler l'espace de noms de l'hôte et d'autres conteneurs.

5.0 ports

des ports pour la cartographie de l'orifice d'étiquette.

Utilisez HOST: format conteneur ou tout simplement spécifié port de conteneurs, hôte de mappage de port hasard.

ports:
 - "3000"
 - "8000:8000"
 - "49100:22"
 - "127.0.0.1:8001:8001"

Lorsque HOST: port CONTAINER format condensé, si le conteneur est plus petit que le port 60 peut obtenir des résultats incorrects obtenus, comme analyser YAML xx: yy Ce format numérique est 60-aire. Il est recommandé que l'utilisation du format de chaîne.

5.1 extra_hosts

Ajouter des tags nom d'hôte, ajoutera quelques enregistrements dans le fichier / etc / hosts.

extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"

Une fois que vous commencez à voir à l'intérieur des conteneurs hôtes:

162.242.195.82  somehost
50.31.209.229   otherhost

5.2 volumes

Un répertoire ou monter un conteneur de volume de données existantes, peuvent être utilisés directement [HOST: CONTAINER] format ou utilisation [HOST: CONTAINER: ro] le format, celui - ci au récipient, le volume de données est en lecture seule, peut être efficace protection du système de fichiers hôte.
Compose chemin volume de données spécifié peut être un chemin relatif, utilisation. ... ou pour spécifier le répertoire relatif.
Le format peut être une forme de volume de données ci - dessous

volumes:
  // 只是指定一个路径,Docker 会自动在创建一个数据卷(这个路径是容器内部的)。
  - /var/lib/mysql
  // 使用绝对路径挂载数据卷
  - /opt/data:/var/lib/mysql
  // 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器。
  - ./cache:/tmp/cache
  // 使用用户的相对路径(~/ 表示的目录是 /home/<用户目录>/ 或者 /root/)。
  - ~/configs:/etc/configs/:ro
  // 已经存在的命名的数据卷。
  - datavolume:/var/lib/mysql

Si aucun hôte de chemin peut spécifier un volume_driver.

volume_driver: mydriver

5.3 volumes_from

Monter d'un autre conteneur de service ou d'un volume de données:

volumes_from:
   - service_name   
     - container_name

5.4 dns

serveur DNS personnalisé. Peut-être une valeur, il peut être une liste.

dns:8.8.8.8
dns:
    - 8.8.8.8   
      - 9.9.9.9

5.5 exposer

L'exposition au port, mais ne correspond pas à l'hôte, ce qui permet l'accès uniquement aux services qui peuvent être connectés. port interne désigné ne peut être un paramètre, comme suit:

expose:
    - "3000"
    - "8000"

5.6 liens

Liens vers d'autres services dans le conteneur. Nom du service (alias simultanément), ou "Nom du service: service Alias" (par exemple SERVICE: ALIAS), par exemple:

links:
    - db
    - db:database
    - redis

5.7 net

Régler le mode réseau.

net: "bridge"
net: "none"
net: "host"

5. Docker-composer le fichier modèle

Ecrire docker-compose.yml 5.1 Docker-Compose le fichier modèle

version: '2'
services:
  web1:
    image: nginx
    ports:
      - "6061:80"
    container_name: "web1"
    networks:
      - dev
  web2:
    image: nginx
    ports:
      - "6062:80"
    container_name: "web2"
    networks:
      - dev
      - pro
  web3:
    image: nginx
    ports:
      - "6063:80"
    container_name: "web3"
    networks:
      - pro
 
networks:
  dev:
    driver: bridge
  pro:
    driver: bridge

5.2 Démarrez l'application

Créez un répertoire webapp et copiez le fichier dans le docker-compose.yaml répertoire webapp, lancez l'application à l'aide du docker-Compose.

docker-compose up -d

5.3 Service d'accès

curl http://127.0.0.1:6061
curl http://127.0.0.1:6062
curl http://127.0.0.1:6063
Publié 11 articles originaux · louange gagné 2 · Vues 439

Je suppose que tu aimes

Origine blog.csdn.net/qq_41112063/article/details/105313807
conseillé
Classement