Docker-Compose
- article Annuaire
article Annuaire
- 1. Docker-Compose ce que?
- 2. Docker-Compose installer désinstaller
- 3. Docker-Compose commandes couramment utilisées
- 3.1 Docker-Compose format de commande
- 3,2-docker composer jusqu'à
- 3.3 docker-compose ps
- 3.4 docker-Compose arrêt
- 3,5-docker composer -h
- 3,6-docker composer vers le bas
- 3,7-docker composer vers le bas
- 3,8-docker composer bulid
- 3.9 docker-Compose traction
- 4.0 docker-Compose restart
- 4,1-docker composent rm
- début 4.2 docker-Compose
- 4,3 docker-run composer
- 4,4-échelle docker Compose
- 4,5-docker composer pause
- 4.6 tuer docker-Compose
- 4,7-docker composer config
- 4,8-docker composer créer
- 4,9-docker composer exec
- 5,0 orifice docker-Compose
- 5.1 docker-Compose poussée
- 5,2-docker composer arrêt
- 5,3-docker composer uppause
- 4. Docker-composer le fichier modèle
- 4.1 Docker-composer le profil de fichier modèle
- 4.2 l'image
- 4.3 build
- 4.4 contexte
- 4.5 dockerfile
- 4.6 commond
- 4.7 container_name
- 4.8 depends_on
- 4,9 PID
- 5.0 ports
- 5.1 extra_hosts
- 5.2 volumes
- 5.3 volumes_from
- 5.4 dns
- 5.5 exposer
- 5.6 liens
- 5.7 net
- 5. Docker-composer le fichier modèle
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 projetsortie -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é videvolumes 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-ComposeRetirez 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 servicesortie 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