Pratique et organisation de la composition des dockers

Aaron Lin 2021-09-15 09:29:51
pratique et organisation la composition


Docker Compose Peut être réalisé Docker Orchestration des grappes de conteneurs,Peut passer docker-compose.yml Documentation,Définir nos services et les dépendances dont ils ont besoin,Facile à tester、Environnement de production, etc.

Documentation

Product manuals

Compose file version 3 reference

Docker Du début à la pratique 【En chinois】

Installation Compose

Compose Dépendance Docker Engine,Tout pour s'assurer que l'environnement est installé Docker,RéférencesTutoriel officiel,Il y a deux étapes principales:

# 1. Télécharger Compose Exécuter uniquement les fichiers vers usr/local/bin/ Table des matières
# L'échec du téléchargement peut se référer au résumé suivant pour l'installation de l'adresse
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 2. C'est exact. Compose Exécutable ajouter des permissions d'exécution
sudo chmod +x /usr/local/bin/docker-compose
# Saisissez la commande suivante pour voir l'aide ,Tester le succès de l'installation
docker-compose -h

Compose Open Source at Docker Official GitHub Entrepôt:docker/compose,Tous les Compose Tout sera publié dans l'entrepôt Releases - Oui.,Étapes1Est d'utiliser curl Commande depuis Releases Télécharger l'exécutable ,uname -sEtuname -m Le nom du noyau et l'architecture matérielle du système peuvent être lus , Pour faire correspondre Compose Version, curl De -L Les paramètres font HTTP Demande de suivre la redirection ( Par défaut ne suit pas ),-o (Minusculeo) Enregistrer la réponse du serveur dans un fichier , Télécharger directement à :usr/local/bin/ En bas.,Nom du fichier:docker-compose, Parce que ce chemin est déjà dans la variable d'environnement , Alors finis les étapes 2, Après avoir ajouté des permissions exécutables , Peut être utilisé n'importe où

Directement à partir de GitHub Les téléchargements sont lents et peuvent être téléchargés à l'adresse suivante :

# https://vuepress.mirror.docker-practice.com/compose/install/
sudo curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Introduction

Compose Les instructions du modèle pour Docker De run Les paramètres liés à la commande sont très similaires ,J'ai oublié docker Les commandes peuvent se référer à un blog précédent :Docker Pratique et ordre de toilettage

Compose Il y a deux concepts importants:

  • Services (service):Un conteneur pour une application,Vous pouvez en fait inclure plusieurs instances de conteneur qui exécutent le même miroir

  • Projets (project):Une Unit é d'affaires complète composée d'un ensemble de conteneurs d'application associés,In docker-compose.yml Défini dans le fichier

docker-compose.yml Le format est le suivant:,Attention!:YAML Le fichier doit saisir entre les valeurs : Il doit y avoir un espace derrière , L'indentation indique le niveau , Attention à l'indentation
Il y a des volumes Et networks Doit déclarer

# Spécifier la version
version: "3"
# Collection de services
services:
# Un des services ,Le nom du service est:webapp
webapp:
# Spécifiez le miroir utilisé par le service
image: examples/web
# Cartographie des ports
ports:
- "80:80"
# Volume de données
volumes:
- "/data"

Simple coup de main

Dans un Compose Démarrage moyen Tomcat, MySQL, redis,Création docker-compose.yml

version: "3.0"
services:
tomcat:
container_name: mytomcat # --name
image: tomcat:8.0-jre8
ports:
- "8080:8080"
volumes:
- "tomcatwebapps:/usr/local/tomcat/webapps"
networks:
- some_network
# tomcat Le service dépend de mysql Et redis
depends_on:
- mysql
- redis
mysql:
container_name: mysql
image: mysql:5.7.32
ports:
- "3306:3306"
volumes:
- "mysqldata:/var/lib/mysql"
- "mysqlconf:/etc/mysql"
environment:
- MYSQL_ROOT_PASSWORD=1234
networks:
some_network:
redis:
container_name: redis
image: redis:5.0.10
ports:
- "6379:6379"
volumes:
- "redisdata:/data"
command: "redis-server --appendonly yes"
networks:
some_network:
# Utilisé dans volumes Et networks Doit déclarer
volumes:
tomcatwebapps:
mysqldata:
mysqlconf:
redisdata:
networks:
# Le nom de la déclaration est “some_network” Le réseau de
some_network:

In docker-compose.yml Exécution sur le chemin docker-compose up Démarrage Compose Projets, Il télécharge le miroir utilisé et exécute le Journal d'impression au premier plan ,Peut être utilisé Ctrl + C Résiliation

Si l'exécution de fond est nécessaire docker-compose up -d,Pour le moment docker ps Je vois. Compose Déjà basé sur yaml Conteneur associé créé ,Utiliser docker-compose down Arrêtez! Compse Et supprimer les ponts créés automatiquement

Utiliser docker network ls Voir le réseau ou docker volume ls Voir le volume de données,Compose Le format de nom de réseau ou de volume de données défini est :docker-compose.yml Le nom du dossier dans lequel vous travaillez est souligné plus yaml Nom défini dans ,Si dans "dockerfile" Créer sous le dossier yaml Fichier et démarrage, Le nom du réseau est :dockerfile_some_network

tomcat Le Service a utilisé depends_on, Indique qu'il dépend de redis Et mysql Services,Compose Démarre d'abord ses dépendances pour le redémarrer

Commande de toilettage

Docker Compose Les ordres de Dokcer Similaire,Peut être utilisé --help Paramètres, Vous pouvez trouver comment utiliser la commande correspondante

docker-compose --help

Le nom de fichier par défaut du modèle de démarrage est docker-compose.yml,Peut être utilisé -f Spécifiez un fichier modèle personnalisé
Peut passer config Les ordres, Vérifiez que la syntaxe du fichier modèle est correcte

docker-compse Contient également de nombreuses sous - commandes :
Démarrer et arrêter la corrélation :up, down, restart, stop, pasue, unpause

Ressources liées à :ps, top, kill, run

Dans le récipient:exec

Voir le journal:logs

Un certain nombre de sous - commandes peuvent suivre un certain service Nom, Fonctionnement directionnel , Voici quelques exemples ,
Peut être utilisédocker-compose help Suivre les noms des sous - commandes , Demande son utilisation

# Démarrage de l'arrière - plan yaml Tous les conteneurs définis
docker-compose up -d
# Démarrage seulement mysql C'estservice, Va démarrer ses dépendances service
docker-compose up mysql Spécifiez le démarrageserverNom,
# Arrêter le conteneur et supprimer le pont créé automatiquement
docker-compose down
# Redémarrer tout service Vous pouvez spécifier un service
docker-compose restart
# Pause Et Reprise
docker-compose pause
docker-compose unpause
# Entrée redis C'est service Utiliser exit Sortie
docker-compose exec redis bash
# Liste actuelle yaml Informations sur les conteneurs définis dans
docker-compose ps
# Supprimer le courant yaml Conteneur tel que défini dans ,D'abord. stop, Vous pouvez spécifier un service
docker-compose rm
# Voir chaque service État du processus en cours d'exécution dans le conteneur
docker-compose top
# Affichage des journaux affichage par défaut yaml Tous les, Peut suivre les détails service
# -f Peut garder une trace , Le nouveau journal apparaîtra immédiatement à l'écran
docker-compose logs

Références

curl Guide d'utilisation pour
【 Mauvaise programmation 】DockerTechnologie des conteneurs&Docker-ComposeSur le terrain

版权声明
本文为[Aaron Lin]所创,转载请带上原文链接,感谢
https://javamana.com/2021/09/20210915092317394u.html

  1. The first starcoin & move hacksong source code analysis - P (a)
  2. Zhaijia 36 days Salt Fish turn into Tencent, Zookeeper Consistency level analysis,
  3. Traitement de l'interception des champs de demande communs de Spring Cloud, plus de 500 personnes interviewent Ali,
  4. About JavaScript modules
  5. Object oriented programming (2)
  6. Java日期时间API系列42-----一种高效的中文日期格式化和解析方法
  7. Java日期時間API系列42-----一種高效的中文日期格式化和解析方法
  8. 宅家36天鹹魚翻身入職騰訊,Zookeeper一致性級別分析,
  9. Java Date Time API Series 42 - - a efficient Chinese Date Format and Analysis Method
  10. 已成功拿下字节、腾讯、脉脉offer,7年老Java一次操蛋的面试经历,
  11. 小米Java社招面试,每次面试必问的二叉树的设计与编码,
  12. 小米Java校招面试,阿里、百度、美团、携程、蚂蚁面经分享,
  13. 小米Java校招面試,阿裏、百度、美團、攜程、螞蟻面經分享,
  14. Xiaomi Java School Recruitment interview, Ali, baidu, meituan, ctrip, ant Facebook Sharing,
  15. La conception et le codage de l'arbre binaire requis pour chaque entrevue d'embauche de la société Java millet;
  16. A remporté avec succès Byte, Tencent, Pulse offer, 7 ans Java une expérience d'entrevue de baise,
  17. 干货来袭,Java岗面试12家大厂成功跳槽,
  18. 常用Java框架面试题目,现在做Java开发有前途吗?
  19. 常用Java框架面試題目,現在做Java開發有前途嗎?
  20. Les questions d'entrevue couramment utilisées pour le cadre Java sont - elles prometteuses pour le développement Java?
  21. L'arrivée de marchandises sèches, l'entretien d'emploi Java 12 grandes usines ont réussi à changer d'emploi,
  22. Multiple postures for handling container time in k8s environment
  23. Echarts remove left Gap, Blank
  24. Hotspot Weekly | zoom $100 million, docker fees, $38 billion Data bricks
  25. JsonMappingException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory...
  26. Java. Security. Securerandom source code analysis Java. Security. EGD = file: / dev /. / urandom
  27. When using IntelliJ idea, jump directly and quickly from the mapper interface to mapper.xml
  28. When idea writes SQL in mybatis XML, the solution to the problems of table name, field and red reporting
  29. Spring cloud integrates Nacos
  30. 应届毕业生Java笔试题目,2021大厂Java社招最全面试题,
  31. Liver explosion! Take you to understand Hadoop serialization
  32. linux系列之:告诉他,他根本不懂kill
  33. java版gRPC实战之三:服务端流
  34. RabbitMQ核心知识总结!
  35. linux系列之:告诉他,他根本不懂kill
  36. java版gRPC实战之三:服务端流
  37. RabbitMQ核心知识总结!
  38. 10天拿到字节跳动Java岗位offer,学习Java开发的步骤
  39. 10天拿到字节跳动Java岗位offer,Java知识点思维导图
  40. Résumé des connaissances de base de rabbitmq!
  41. 10天拿到字節跳動Java崗比特offer,Java知識點思維導圖
  42. 10 jours pour obtenir un Byte Jump Java post offer, Java Knowledge point Mind Map
  43. 10 jours pour obtenir l'octet Jump Java post offer, apprendre les étapes du développement Java
  44. Java version of gppc Reality Three: server side stream
  45. Linux Series: Dites - lui qu'il ne connaît pas kill du tout
  46. "Data structure and algorithm" of front end -- binary search
  47. 2020-2021京东Java面试真题解析,如何才能通过一线互联网公司面试
  48. 13 SpringBoot整合RocketMQ实现过滤消息-根据SQL表达式过滤消息
  49. 12 SpringBoot整合RocketMQ实现过滤消息-根据TAG方式过滤消息
  50. 11 SpringBoot整合RocketMQ实现事务消息
  51. 11 springboot Consolidated rocketmq Implementation transaction message
  52. 12 springboot Consolidated rocketmq Implements Filtering messages - Filtering messages according to tag method
  53. 13 springboot Consolidated rocketmq Implementation Filtering messages - Filtering messages according to SQL expressions
  54. linux系列之:告诉他,他根本不懂kill
  55. (1)java Spring Cloud+Spring boot企业快速开发架构之微服务是什么?它的优缺点有哪些?
  56. Oracle 检查 DATE 列 RANGE 分区表已有分区的最大日期时间
  57. ConcurrentHashMap--原理
  58. 2020 - 2021 JD Java interview Real question Analysis, How can interview through First - Line Internet Company
  59. Concurrenthashmap - - Principes
  60. Oracle vérifie l'heure de date maximale d'une partition existante dans la colonne date