Le projet Docker-Compose est le projet open source officiel de Docker, responsable de l'orchestration rapide des clusters de conteneurs Docker. Compose permet aux utilisateurs de définir un ensemble de conteneurs d'applications associés en tant que projet via un fichier modèle docker-compose.yml distinct (format YAML). Le projet Docker-Compose est écrit en Python et appelle l'API fournie par le service Docker pour gérer les conteneurs. Par conséquent, tant que la plate-forme sur laquelle vous travaillez prend en charge l'API Docker, vous pouvez utiliser Compose pour la gestion de l'orchestration.
Docker-Compose divise les conteneurs gérés en trois couches, à savoir le projet, le service et le conteneur. Tous les fichiers du répertoire d'exécution Docker-Compose (docker-compose.yml, fichiers d'extension ou fichiers de variables d'environnement, etc.) forment un projet S'il n'y a pas de spécification particulière, le nom du projet est le nom du répertoire actuel. Un projet peut contenir plusieurs services, et chaque service définit l'image, les paramètres et les dépendances du conteneur à exécuter. Un service peut inclure plusieurs instances de conteneur. Docker-Compose ne résout pas le problème de l'équilibrage de charge, d'autres outils sont donc nécessaires pour réaliser la découverte de services et l'équilibrage de charge.
Le fichier de configuration du projet par défaut de Docker-Compose est docker-compose.yml. Le fichier de configuration peut être personnalisé via la variable d'environnement COMPOSE_FILE ou le paramètre -f, qui définit plusieurs services dépendants et chaque conteneur. le service s'exécute.
L'utilisation d'un fichier modèle Dockerfile permet aux utilisateurs de définir facilement un conteneur d'application distinct. Au travail, nous rencontrons souvent des situations dans lesquelles plusieurs conteneurs doivent coopérer les uns avec les autres pour accomplir une certaine tâche. Par exemple, pour implémenter un projet Web, en plus du conteneur de service Web lui-même, il est souvent nécessaire d'ajouter un conteneur de service de base de données back-end et même un conteneur d'équilibrage de charge.
Commandes communes
docker-compose
La fonction de Compose est de "définir et exécuter des applications de plusieurs conteneurs Docker". À l'aide de Compose, vous pouvez configurer les services de votre application dans un fichier de configuration (format yaml), puis utiliser une seule commande pour créer et démarrer tous les services référencés dans la configuration.
Deux concepts importants dans Compose :
• Service : Un conteneur d'application peut en fait inclure plusieurs instances de conteneur exécutant la même image.
• Projet : Une business unit complète constituée d'un ensemble de conteneurs d'applications associés, définis dans le fichier docker-compose.yml.
Télécharger et installer via le lien GitHub Les utilisateurs non-ROOT n'oubliez pas d'ajouter sudo
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Donnez au fichier de téléchargement binaire les autorisations exécutables #🎜 🎜#
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
S'il est installé en tant que package binaire, supprimez simplement le fichier binaire
rm /usr/local/bin/docker-compose
compose docker-compose.yml eureka Dockerfile eureka-server-2.0.2.RELEASE.jar user Dockerfile user-2.0.2.RELEASE.jar power Dockerfile power-2.0.2.RELEASE.jar
docker-compose.yml
version: '3.1' #这里要指定docker-compose对应的docker版本 services: jenkinstest: #指定服务名 #image: jenkinstest #指定镜像名称 小写不然会报错 build: ./jenkinsTest #指定Dockfile所在路径 ports: - 8099:8099 #指定端口映射 expose: - 8099 #对外暴露的服务端口
FROM adoptopenjdk/openjdk8:jdk8u-centos-nightly #作者 MAINTAINER lkz # 镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效 EXPOSE 8099 COPY jenkinsTest.jar 11.jar # 在镜像运行为容器后执行的命令 ENTRYPOINT ["java","-jar","11.jar"]
Pour démarrer le microservice, vous pouvez ajouter le paramètre -d pour démarrer en arrière-plan
docker-compose up -d
Configuration comme ci-dessusModifier le fichier docker-compose.yml
version: '3.3' services: eureka: image: eureka:v1 #指定镜像名称 build: ./eureka #指定Dockfile所在路径 ports: - 8080:8080 user: image: user:v1 build: ./user #指定Dockfile所在路径 ports: - 8081:8081 power: image: power:v1 build: ./power #指定Dockfile所在路径 ports: - 8082:8082
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!