Docker From Beginning to Practice Series IV - docker Container chorégraphe Clean docker Composition

Harmonios Learning 2021-11-25 17:34:55
docker beginning practice series iv

 Tests

docker-compose --version

 Désinstaller

S'il est installé en mode paquet binaire,Supprimer les binaires suffit.

sudo rm /usr/local/bin/docker-compose

 docker-compose.yml Détails du fichier


 Concept

Documents officiels: https://docs.docker.com/compose/compose-file/

Docker Compose Permettre à l'utilisateur de passer par docker-compose.yml Documentation(YAML Format)Pour définir un ensemble de conteneurs associés comme un projet(project).Un projet comprend plusieurs services(service),Le miroir nécessaire pour créer un conteneur est défini dans chaque service、Paramètres、Dépendance, etc..

Nom du projet s'il n'y a pas de désignation spéciale,C'est - à - dire: docker-compose.yml Nom du Répertoire dans lequel se trouve le fichier.

Docker Compose Les profils de haut niveau sur lesquels nous devons nous concentrer sont versionservicesnetworksvolumes Plusieurs Parties,Sauf version Extérieur, Il y a beaucoup d'autres configurations de niveau inférieur sous plusieurs autres configurations de niveau supérieur , Nous vous présenterons plus en détail , Voyons ce que ces configurations de haut niveau signifient :

  • version:Description Compose Informations sur la version du fichier,La dernière version actuelle est 3.8,Correspondant Docker La version est 19.03.0+;

  • services:Définition des services,Peut être plusieurs,Le miroir nécessaire pour créer un conteneur est défini dans chaque service、Paramètres、Dépendance, etc.;

  • networkds:Définir le réseau,Peut être plusieurs,Selon DNS server Permettre aux conteneurs du même réseau de communiquer directement par leur nom ;

  • volumes:Volume de données, Pour réaliser le montage du Répertoire .

 CAS

Dans le profil, Tous les conteneurs passent services Pour définir,Ensuite, utilisez docker-compose Script pour démarrer, Arrêter et redémarrer le conteneur , Idéal pour les scénarios de développement avec plusieurs combinaisons de conteneurs . Commençons par un simple Compose Études de cas .

Compilation docker-compose.yml Documentation.

Créer un répertoire

mkdir -p /usr/local/docker-nginx

Passer au Répertoire spécifié

cd /usr/local/docker-nginx/

Compilation docker-compose.yml Documentation

vi docker-compose.yml

Ajouter ce qui suit au fichier:

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

nginx: # Nom du service

image: nginx # Miroir requis lors de la création du conteneur

container_name: mynginx # Nom du conteneur,Par défaut"Nom du projet_ Nom de l'entrée de service _Numéro de série"

ports: # Relation de cartographie du port entre l'hôte hôte hôte et le conteneur

  • “80:80” # Port hôte gauche : Port du conteneur droit

networks: # Configurer le réseau auquel le conteneur est connecté,Haut de la page networks Entrée sous

  • nginx-net

Définir le réseau,Peut être plusieurs.Si vous ne déclarez pas, Par défaut, un nom de réseau est créé avec "Nom du projet_default"De bridge Réseau

networks:

nginx-net: # Nom de l'entrée pour un réseau spécifique

name: nginx-net # Nom du réseau,Par défaut"Nom du projet_ Nom de l'entrée réseau "

driver: bridge # Mode réseau,Par défaut bridge

Utiliser docker-compose up Créer et démarrer tous les services. Un seul de ces cas simples Nginx Ensuite, nous allons faire des exercices compliqués :

Démarrage de la réception

docker-compose up

Démarrage de l'arrière - plan

docker-compose up -d

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Java

Le navigateur accède à son propre serveur ipAdresse: http://192.168.138.8/ Les résultats sont les suivants::

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Java_02

Utiliser docker-compose down Vous pouvez arrêter et supprimer le conteneur 、Réseau.

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Interview_03

 version

Description Compose Informations sur la version du fichier,La dernière version actuelle est 3.8,Correspondant Docker La version est 19.03.0+. Pour plus de détails sur chaque version, voir : https://docs.docker.com/compose/compose-file/compose-versioning/

Ce qui suit: Compose Les informations de version du fichier correspondent à Docker Version.

| Compose file format | Docker Engine release |

| :-- | :-- |

| 3.8 | 19.03.0+ |

| 3.7 | 18.06.0+ |

| 3.6 | 18.02.0+ |

| 3.5 | 17.12.0+ |

| 3.4 | 17.09.0+ |

| 3.3 | 17.06.0+ |

| 3.2 | 17.04.0+ |

| 3.1 | 1.13.1+ |

| 3.0 | 1.13.0+ |

| 2.4 | 17.12.0+ |

| 2.3 | 17.06.0+ |

| 2.2 | 1.13.0+ |

| 2.1 | 1.12.0+ |

| 2.0 | 1.10.0+ |

| 1.0 | 1.9.1.+ |

 services

Nous venons de mentionner docker-compose.yml Le fichier contient de nombreux éléments de configuration pour enfants , Voici quelques éléments de configuration communs pour plus de détails , Configurer d'abord à partir du haut niveau services C'est parti..

services Utilisé pour définir les services ,Peut être plusieurs,Le miroir nécessaire pour créer un conteneur est défini dans chaque service、Paramètres、Dépendance, etc., C'est comme passer un argument en ligne de commande à docker run C'est pareil.Encore une fois, La définition du réseau et du volume de données est la même .

Par exemple,,Avant que nous passions docker run Commande construire un MySQL Les commandes pour appliquer le conteneur sont les suivantes: :

docker run -d --name mysql8 -p 3306:3306 -v /opt/data/docker_mysql/conf:/etc/mysql/conf.d -v /opt/data/docker_mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8

Utiliser docker-compose.yml Vous pouvez définir cela plus tard :

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

mysql: # Nom du service

image: mysql:8 # Miroir requis lors de la création du conteneur

container_name: mysql8 # Nom du conteneur,Par défaut"Nom du projet_ Nom de l'entrée de service _Numéro de série"

ports: # Relation de cartographie du port entre l'hôte hôte hôte et le conteneur

  • “3306:3306” # Port hôte gauche : Port du conteneur droit

environment: # Variables d'environnement requises lors de la création d'un conteneur

MYSQL_ROOT_PASSWORD: root

volumes:

  • “/opt/data/docker_mysql/conf:/etc/mysql/conf.d”

  • “/opt/data/docker_mysql/data:/var/lib/mysql”

Et à travers dokcer-compose La commande associée complète la création du conteneur , Une série d'opérations telles que l'arrêt ou la suppression .

 image

Spécifiez ce qui est nécessaire pour créer un conteneur Étiquette du nom du miroir OuMiroir ID. Si le miroir n'existe pas localement , Sera tiré à distance .

services:

web:

image: hello-world

 build

En plus de construire des conteneurs basés sur des miroirs spécifiés ,Peut également être basé sur Dockerfile Construction de fichiers,En service up La tâche de construction est exécutée au moment de la commande .

Adoption build Les éléments de configuration peuvent être spécifiés Dockerfile Chemin vers le dossier où vous êtes.Compose Sera utilisé Dockerfile Miroir de construction automatique, Ensuite, utilisez le miroir pour démarrer le conteneur de service .

build Les éléments de configuration peuvent utiliser un chemin absolu ,Vous pouvez également utiliser des chemins relatifs.

Chemin absolu, Sous ce chemin, basé sur le nom Dockerfile Miroir de construction de fichiers pour

/usr/local/docker-centos

Chemin relatif, Relativement actuel docker-compose.yml Répertoire dans lequel se trouve le fichier, Basé sur le nom Dockerfile Miroir de construction de fichiers pour

.

Ensuite, nous allons faire un exercice un peu plus compliqué , Miroir à travers la Fondation centos:7, Installer dans ce miroir jdk Et tomcat Faites - en un nouveau miroir plus tard mycentos:7.

Créer un répertoire et écrire Dockerfile Documentation.

Créer un répertoire

mkdir -p /usr/local/docker-centos

Passer au Répertoire spécifié

cd /usr/local/docker-centos/

Compilation Dockerfile Documentation

vi Dockerfile

Dockerfile Le contenu du document est le suivant::

Indique que le nouveau miroir construit provient de centos:7 Miroir de base

FROM centos:7

Les informations de l'auteur sont déclarées par une étiquette miroir

LABEL maintainer=“jourwon.com”

Définir le Répertoire de travail

WORKDIR /usr/local

Créer le répertoire spécifié après la construction réussie du nouveau miroir

RUN mkdir -p /usr/local/java && mkdir -p /usr/local/tomcat

Copier le fichier dans le miroir et décompresser

ADD jdk-11.0.6_linux-x64_bin.tar.gz /usr/local/java

ADD apache-tomcat-9.0.37.tar.gz /usr/local/tomcat

Exposition au fonctionnement du conteneur 8080 Port d'écoute vers l'extérieur

EXPOSE 8080

Configuration dans le conteneur JAVA_HOME Variables d'environnement

ENV JAVA_HOME /usr/local/java/jdk-11.0.6/

ENV PATH P A T H : PATH: JAVA_HOME/bin

Démarrer lorsque le conteneur est démarré tomcat Et voir tomcat Informations sur le journal

CMD [“/usr/local/tomcat/apache-tomcat-9.0.37/bin/catalina.sh”, “run”]

Package of Resources Required jdk Et tomcat Télécharger sur Dockerfile Même table des matières.

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Développement de l'arrière - plan_04

Créer un répertoire et écrire docker-compose.yml Documentation.

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

mycentos: # Nom du service

build: . # Relativement actuel docker-compose.yml Répertoire dans lequel se trouve le fichier, Basé sur le nom Dockerfile-alternate Miroir de construction de fichiers pour

container_name: mycentos7 # Nom du conteneur,Par défaut"Nom du projet_ Nom de l'entrée de service _Numéro de série"

ports: # Relation de cartographie du port entre l'hôte hôte hôte et le conteneur

  • “8080:8080” # Port hôte gauche : Port du conteneur droit

Et à travers dokcer-compose La commande associée complète la création du conteneur , Une série d'opérations telles que l'arrêt ou la suppression .

 context

Cette option peut être Dockerfile Absolu du fichier /Chemin relatif,Ou à distance Git Entrepôt URL,Lorsque la valeur fournie est un chemin relatif, Relativement actuel docker-compose.yml Répertoire dans lequel se trouve le fichier.

build:

context: . # Relativement actuel docker-compose.yml Répertoire dans lequel se trouve le fichier, Basé sur le nom Dockerfile Miroir de construction de fichiers pour

 dockerfile

En général, La valeur par défaut est basée sur le nom du fichier Dockerfile Miroir de construction de fichiers pour , Bien sûr, il peut aussi s'agir d'un nom de fichier personnalisé ,Utiliser dockerfile Déclaration, Mais cette option ne peut déclarer que le nom du fichier , Le fichier est toujours sur le chemin centext Pour déclarer.

build:

context: . # Relativement actuel docker-compose.yml Répertoire dans lequel se trouve le fichier

dockerfile: Dockerfile-alternate # Basé sur le nom Dockerfile-alternate Miroir de construction de fichiers pour

 container_name

Compose Le conteneur créé a un format de nom généré par défaut de :Nom du projet_ Nom de l'entrée de service _Numéro de série. Si vous voulez utiliser un nom personnalisé ,Utiliser container_name Déclaration.

services:

mycentos:

build: .

container_name: mycentos7 # Nom du conteneur,Par défaut"Nom du projet_ Nom de l'entrée de service _Numéro de série"

Parce que Docker Le nom du conteneur doit être unique, Donc si vous spécifiez un nom personnalisé , Vous ne pouvez pas étendre un service à plus d'un conteneur . Cela peut entraîner des erreurs .

À propos du numéro de série

À quoi sert le numéro de série? , Regardez l'exemple ci - dessous et vous verrez ,docker-compose.yml Le contenu du document est le suivant::

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

helloworld: # Nom du service

image: hello-world

Et à travers --scale Désignation helloworld Démarrage unique du Service 3 - Oui..

docker-compose up -d --scale helloworld=3

L'image ci - dessous montre qu'il y a 3 Conteneurs créés , Nom du conteneur dernier Numéro de sérieDe 1 Début de l'accumulation , C'est ce que font les numéros de série. . Donc si vous spécifiez un nom personnalisé , Vous ne pouvez pas étendre un service à plus d'un conteneur .

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Interview_05

 depends_on

Utiliser Compose Le plus grand avantage est de faire plus avec le moins de commandes , Mais l'ordre dans lequel les conteneurs d'articles généraux sont lancés est requis , Si vous démarrez le conteneur directement de haut en bas , Le démarrage doit échouer en raison d'un problème de dépendance au conteneur . Par exemple, démarrer sans démarrer le conteneur de base de données Web Conteneur d'application, Le conteneur d'application sort parce que la base de données n'est pas trouvée .depends_on Est utilisé pour résoudre les dépendances des conteneurs 、 Démarrer les éléments de configuration pour les problèmes de séquence .

version: “3.8”

services:

web:

build: .

depends_on:

  • db

  • redis

redis:

image: redis

db:

image: mysql

Ci - dessus YAML Le conteneur défini par le fichier démarre en premier db Et redis Deux services, Enfin. web Services.

 ports

Ports exposés au conteneur,Format: Port hôte gauche : Port du conteneur droit .

ports:

  • “80:80”

  • “8080:8080”

 expose

Le port exposé par le conteneur n'est pas cartographié à l'hôte hôte hôte , Seuls les services connectés sont autorisés à accéder .

expose:

  • “80”

  • “8080”

 restart

Politique de redémarrage du conteneur,La compréhension simple est Docker Voulez - vous démarrer le conteneur ensemble après le redémarrage :

  • no: Politique de redémarrage par défaut ,Le conteneur ne redémarrera en aucun cas;

  • on-failure: Sortie anormale du conteneur , Par exemple, l'état de sortie est Non0(Sortie anormale),Le conteneur ne redémarrera pas avant;

  • always:Le conteneur redémarre toujours, Même si le conteneur est arrêté manuellement ,Quand Docker Lorsque vous redémarrez, le conteneur démarre toujours ensemble ;

  • unless-stopped:Le conteneur redémarre toujours, Sauf si le conteneur est arrêté ( Manuel ou autre ),Alors Docker Le conteneur ne démarrera pas au redémarrage .

services:

nginx:

image: nginx

container_name: mynginx

ports:

  • “80:80”

restart: always

 environment

Ajouter une variable d'environnement. Vous pouvez utiliser un tableau ou un dictionnaire . Valeurs booléennes (true、false、yes、no) Tout doit être entre guillemets. ,Pour s'assurer que YML L'analyseur ne les convertit pas en vrai ou faux .

environment:

RACK_ENV: development

SHOW: ‘true’

SESSION_SECRET:

Ou dans le format suivant :

environment:

  • RACK_ENV=development

  • SHOW=true

  • SESSION_SECRET

 env_file

Obtenir les variables d'environnement à partir du fichier , Vous pouvez spécifier un ou plusieurs fichiers ,Sa priorité est inférieure à environment Variable d'environnement spécifiée.

env_file:

  • /opt/runtime_opts.env # Chemin absolu

  • ./common.env # Chemin relatif, Relativement actuel docker-compose.yml Répertoire dans lequel se trouve le fichier

  • ./apps/web.env # Chemin relatif, Relativement actuel docker-compose.yml Répertoire dans lequel se trouve le fichier

Attention!:env Chaque ligne du fichier doit être Clé=Valeur Format.Par # La ligne au début est considérée comme un commentaire et ignorée . Les lignes vides sont également ignorées .

 command

Outrepasser les commandes par défaut après le démarrage du conteneur.

command: echo “helloworld”

La commande peut également être une liste .

command: [“echo”, “helloworld”]

 volumes

Volume de données, Pour réaliser le montage du Répertoire ,Soutien Spécifier le montage du Répertoire Montage anonymeMontage nommé.

  • Spécifie que le format de montage du Répertoire est : Répertoire hôte gauche : Répertoire des conteneurs de droite ,Ou Répertoire hôte gauche : Répertoire des conteneurs de droite :Permissions de lecture et d'écriture;

  • Le format de montage anonyme est : Répertoire des conteneurs ,Ou Répertoire des conteneurs :Permissions de lecture et d'écriture;

  • Le format de montage nommé est : Nom de l'entrée du volume de données :Répertoire des conteneurs,Ou Nom de l'entrée du volume de données :Répertoire des conteneurs:Permissions de lecture et d'écriture.

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

mysql: # Nom du service

image: mysql:8 # Miroir requis lors de la création du conteneur

container_name: mysql8 # Nom du conteneur,Par défaut"Nom du projet_ Nom de l'entrée de service _Numéro de série"

ports: # Relation de cartographie du port entre l'hôte hôte hôte et le conteneur

  • “3306:3306” # Port hôte gauche : Port du conteneur droit

environment: # Variables d'environnement requises lors de la création d'un conteneur

MYSQL_ROOT_PASSWORD: root

volumes:

Chemin absolu

  • “/opt/data/docker_mysql/data:/var/lib/mysql”

Chemin relatif, Relativement actuel docker-compose.yml Répertoire dans lequel se trouve le fichier

  • “./conf:/etc/mysql/conf.d“

Montage anonyme, Le montage anonyme n'a besoin que d'écrire le répertoire des conteneurs , Le répertoire correspondant en dehors du conteneur sera /var/lib/docker/volume Moyenne

  • “/var/lib/mysql”

Montage nommé, C'est un nom pour les données , Le répertoire correspondant en dehors du conteneur sera /var/lib/docker/volume Moyenne

  • “mysql-data-volume:/var/lib/mysql”

Définir le volume de données,Peut être plusieurs

volumes:

mysql-data-volume: # Nom de l'entrée pour un volume de données spécifique

name: mysql-data-volume # Nom du volume de données,Par défaut"Nom du projet_ Nom de l'entrée du volume de données "

 network_mode

Définir le mode réseau,Similaire docker run Paramètres ajoutés à --net host Ou --network host Utilisation de.

network_mode: “bridge”

network_mode: “host”

network_mode: “none”

network_mode: “service:[service name]”

network_mode: “container:[container name/id]”

 networks

Configurer le réseau auquel le conteneur est connecté,Haut de la page networks Entrée sous.

Définition des services,Peut être plusieurs

services:

nginx: # Nom du service

networks: # Configurer le réseau auquel le conteneur est connecté,Haut de la page networks Entrée sous

  • nginx-net # Nom de l'entrée pour un réseau spécifique

Définir le réseau,Peut être plusieurs.Si vous ne déclarez pas, Par défaut, un nom de réseau est créé avec "Nom du projet_default"De bridge Réseau

networks:

nginx-net: # Nom de l'entrée pour un réseau spécifique

name: nginx-net # Nom du réseau,Par défaut"Nom du projet_ Nom de l'entrée réseau "

driver: bridge # Mode réseau,Par défaut bridge

 aliases

Alias de ce service sur le réseau . D'autres conteneurs sur le même réseau peuvent être connectés au conteneur de service en utilisant le nom de service ou cet alias . Le même service peut avoir des alias différents sur différents réseaux .

Définition des services,Peut être plusieurs

services:

nginx: # Nom du service

networks: # Configurer le réseau auquel le conteneur est connecté,Haut de la page networks Entrée sous

nginx-net: # Nom de l'entrée pour un réseau spécifique

aliases: # Alias de service,Peut être plusieurs

  • nginx1 # D'autres conteneurs sur le même réseau peuvent être connectés au conteneur de service en utilisant le nom de service ou cet alias

Définir le réseau,Peut être plusieurs.Si vous ne déclarez pas, Par défaut, un nom de réseau est créé avec "Nom du projet_default"De bridge Réseau

networks:

nginx-net: # Nom de l'entrée pour un réseau spécifique

name: nginx-net # Nom du réseau,Par défaut"Nom du projet_ Nom de l'entrée réseau "

driver: bridge # Mode réseau,Par défaut bridge

 volumes

Configuration de haut niveau services L'apprentissage, Vous devriez avoir compris la configuration de haut niveau volumes Qu'est - ce que, Voici une explication détaillée des différentes configurations .

Les déclarations de volume de données suivantes utilisent le nom par défaut lors de la création d'un volume :"Nom du projet_ Nom de l'entrée du volume de données ".

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

mysql:

image: mysql:8

container_name: mysql8

ports:

  • “3306:3306”

environment

MYSQL_ROOT_PASSWORD: root

volumes:

Montage nommé, C'est un nom pour les données , Le répertoire correspondant en dehors du conteneur sera /var/lib/docker/volume Moyenne

  • “mysql-data-volume:/var/lib/mysql”

Définir le volume de données,Peut être plusieurs

volumes:

mysql-data-volume: # Nom de l'entrée pour un volume de données spécifique

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Développement de l'arrière - plan_06

Les déclarations de volume de données de la façon suivante utilisent un nom personnalisé lors de la création d'un volume .

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

mysql:

image: mysql:8

container_name: mysql8

ports:

  • “3306:3306”

environment

MYSQL_ROOT_PASSWORD: root

volumes:

Montage nommé, C'est un nom pour les données , Le répertoire correspondant en dehors du conteneur sera /var/lib/docker/volume Moyenne

  • “mysql-data-volume:/var/lib/mysql”

Définir le volume de données,Peut être plusieurs

volumes:

mysql-data-volume: # Nom de l'entrée pour un volume de données spécifique

name: mysql-data-volume # Nom du volume de données,Par défaut"Nom du projet_ Nom de l'entrée du volume de données "

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Interview_07

 networks

Configuration de haut niveau services Explication, Tout le monde comprend déjà la configuration de haut niveau networks Qu'est - ce que, Voici une explication détaillée des différentes configurations .

Si le réseau n'est pas déclaré , Un nom de réseau est créé par défaut pour chaque projet "Nom du projet_default"De bridge Réseau.

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

nginx:

image: nginx

container_name: mynginx

ports:

  • “80:80”

Définir le réseau,Peut être plusieurs.Si vous ne déclarez pas, Par défaut, un nom de réseau est créé avec "Nom du projet_default"De bridge Réseau

#networks:

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Interview_08

Les déclarations de réseau suivantes utilisent le nom par défaut lors de la création d'un réseau :"Nom du projet_ Nom de l'entrée réseau ", Le mode réseau est par défaut à bridge.

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

nginx:

image: nginx

container_name: mynginx

ports:

  • “80:80”

networks: # Configurer le réseau auquel le conteneur est connecté,Haut de la page networks Entrée sous

nginx-net:

Définir le réseau,Peut être plusieurs

networks:

nginx-net: # Nom de l'entrée pour un réseau spécifique

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Java_09

Une déclaration de réseau de la façon suivante crée un réseau avec un nom personnalisé ,Peut encore passer driver Sélectionner le mode réseau ,Par défaut bridge.

Description Compose Informations sur la version du fichier

version: “3.8”

Définition des services,Peut être plusieurs

services:

nginx:

image: nginx

container_name: mynginx

ports:

  • “80:80”

networks: # Configurer le réseau auquel le conteneur est connecté,Haut de la page networks Entrée sous

nginx-net:

Définir le réseau,Peut être plusieurs

networks:

nginx-net: # Nom de l'entrée pour un réseau spécifique

name: nginx-net # Nom du réseau,Par défaut"Nom du projet_ Nom de l'entrée réseau "

driver: bridge # Mode réseau,Par défaut bridge

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Interview_10

 Compose Commandes courantes


Documents officiels: https://docs.docker.com/compose/reference/overview/

Pour une utilisation plus habile Compose, Les instructions suivantes sont couramment utilisées pour que tout le monde s'entraîne plus , Ce n'est qu'en pratiquant que l'habileté peut être réalisée. .

docker-compose [-f <arg>…] [options] [COMMAND] [ARGS…]

Certaines options de commande sont les suivantes: :

  • -f,--file:Préciser l'utilisation Compose Fichier modèle,Par défaut docker-compose.yml, Peut être spécifié plus d'une fois ,Spécifier plusieurs yml;

  • -p, --project-name: Spécifier le nom du projet ,Utilisation par défaut docker-compose.yml Nom du Répertoire dans lequel se trouve le fichier;

  • -v: Imprimer la version et quitter ;

  • --log-level: Définir le niveau du Journal (DEBUG, INFO, WARNING, ERROR, CRITICAL).

 help

docker-compose -help Voir l'aide.

[[email protected] ~]# docker-compose -help

Define and run multi-container applications with Docker.

Usage:

docker-compose [-f <arg>…] [options] [COMMAND] [ARGS…]

docker-compose -h|–help

Options:

-f, --file FILE Specify an alternate compose file

(default: docker-compose.yml)

-p, --project-name NAME Specify an alternate project name

(default: directory name)

-c, --context NAME Specify a context name

–verbose Show more output

–log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)

–no-ansi Do not print ANSI control characters

-v, --version Print version and exit

-H, --host HOST Daemon socket to connect to

–tls Use TLS; implied by --tlsverify

–tlscacert CA_PATH Trust certs signed only by this CA

–tlscert CLIENT_CERT_PATH Path to TLS certificate file

–tlskey TLS_KEY_PATH Path to TLS key file

–tlsverify Use TLS and verify the remote

–skip-hostname-check Don’t check the daemon’s hostname against the

name specified in the client certificate

–project-directory PATH Specify an alternate working directory

(default: the path of the Compose file)

–compatibility If set, Compose will attempt to convert keys

in v3 files to their non-Swarm equivalent

–env-file PATH Specify an alternate environment file

Commands:

build Build or rebuild services

config Validate and view the Compose file

create Create services

down Stop and remove containers, networks, images, and volumes

events Receive real time events from containers

exec Execute a command in a running container

help Get help on a command

images List images

kill Kill containers

logs View output from containers

pause Pause services

port Print the public port for a port binding

ps List containers

pull Pull service images

push Push service images

restart Restart services

rm Remove stopped containers

run

《Grandes usines de première ligneJavaAnalyse des questions d'entrevue+Notes d'apprentissage pour le développement de l'arrière - plan+La dernière vidéo d'architecture+Document d'information sur le code source du projet en direct》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 Partage open source du contenu complet

 Run a one-off command

scale Set number of containers for a service

start Start services

stop Stop services

top Display the running processes

unpause Unpause services

up Create and start containers

version Show the Docker-Compose version information

 config

docker-compose config -q Validation docker-compose.yml Documentation.Lorsque la configuration est correcte,Pas de sortie, Lorsque la configuration est incorrecte ,Message d'erreur de sortie.

 pull

docker-compose pull Extraire les miroirs dépendants du Service .

Extraire tous les miroirs dépendants du service dans le projet

docker-compose pull

Projet de retrait nginx Miroir dépendant du Service

docker-compose pull nginx

Ne pas imprimer l'information sur la progression de la traction pendant la traction du miroir

docker-compose pull -q

 up

docker-compose up Créer et démarrer des conteneurs pour tous les services .Spécifier plusieurs yml Plus -f Options. Exécuter plus en mode démon -d Options.

Démarrage de la réception

docker-compose up

Démarrage de l'arrière - plan

docker-compose up -d

-f Préciser l'utilisation Compose Fichier modèle,Par défaut docker-compose.yml, Peut être spécifié plus d'une fois ,Spécifier plusieurs yml

docker-compose -f docker-compose.yml up -d

 logs

docker-compose logs Voir le journal de sortie du conteneur de service .Par défaut,docker-compose Utilisez différentes couleurs pour différencier les différentes sorties de service .Peut passer --no-color Pour éteindre la couleur .

Journal de sortie, Différentes sorties de service utilisent différentes couleurs pour distinguer

docker-compose logs

À la fin

Pour cette interview,J'ai aussi recueilli beaucoup de questions d'entrevue.!

Voici quelques captures d'écran des questions d'entrevue

Docker De l'introduction à la pratique série 4 - Docker Outil de mise en page des conteneurs Docker Compose_Interview_11

Cet article a été publié par CODINGProjet Open Source:【Grandes usines de première ligneJavaAnalyse des questions d'entrevue+Résumé de base notes d'étude+Dernière vidéo d'explication+Code source du projet opérationnel】Inclus

版权声明
本文为[Harmonios Learning]所创,转载请带上原文链接,感谢
https://javamana.com/2021/11/20211125173308742b.html

  1. http://lx.gongxuanwang.com/sszt/32.htm
  2. 回顾我两个月面试阿里,携程,小红书,美团,网易等等(Java岗)
  3. JavaScript高级程序设计读后感(一)之零碎知识点查漏补缺
  4. http://lx.gongxuanwang.com/sszt/7.htm
  5. #yyds干货盘点#设计模式之【工厂模式】
  6. Java * SpringBoot实现万能文件在线预览,已开源,真香
  7. Redis | 第4章 Redis中的数据库《Redis设计与实现》
  8. Redis | 第4章 Redis中的数据库《Redis设计与实现》
  9. 关于centos docker版本过低导致 is not a valid repository/tag: invalid reference format
  10. Redis 源码简洁剖析 02 - SDS 字符串
  11. 回顧我兩個月面試阿裏,攜程,小紅書,美團,網易等等(Java崗)
  12. Rétrospectivement, j'ai passé deux mois à interviewer Ali, ctrip, Little Red Book, meituan, NetEase, etc. (Java post)
  13. Docker + webhook Automation Deployment Front End Project
  14. Java技术之Spring、Hibernate框架整合方法
  15. http://lx.gongxuanwang.com/sszt/32.htm
  16. 亚马逊自己的 Linux 发行版现在完全基于 Fedora 了
  17. Redis 源码简洁剖析 02 - SDS 字符串
  18. Java技術之Spring、Hibernate框架整合方法
  19. Méthode d'intégration des cadres de printemps et d'hibernation de la technologie Java
  20. Redis source Concise Analysis 02 - SDS String
  21. La distribution Linux d'Amazon est maintenant entièrement basée sur Fedora
  22. org.springframework.web.bind.MissingServletRequestParameterException
  23. Built in constraints and functions of MySQL Foundation (2)
  24. Basic operation of MySQL Foundation (I)
  25. Introduction to Java zero foundation 3: Java data types
  26. 从零开始搭建EasyDarwin环境——Linux系统开发环境搭建Golang
  27. Redis source Concise Analysis 02 - SDS String
  28. Construire l'environnement easydarwin à partir de zéro - - construire l'environnement de développement du système Linux golang
  29. javaweb代码是正确的,但是第一行代码就报错了
  30. **** | Java | 后端开挂:3行代码写出8个接口
  31. Java || 看了大二学长写的代码,我竟开始默默的模仿了。。。
  32. Java | 手把手教你实现一个抽奖系统(Java版)
  33. Java | Manuel pour vous apprendre à mettre en œuvre un système de loterie (version Java)
  34. Java | | après avoir lu le Code que j'ai écrit en deuxième année, j'ai commencé à imiter silencieusement...
  35. Java | back - end Pending: 3 - line Code write 8 Interfaces
  36. Le Code Web Java est correct, mais la première ligne de code est incorrecte
  37. Android网络编程之Http通信
  38. Android網絡編程之Http通信
  39. Http communication for Android Network Programming
  40. 数据结构实验八 领会图的两种主要储存结构和图的基本运算算法设计
  41. Hibernate数据校验简介
  42. The story of spring
  43. Il a dépensé 270 000 yuans pour soulever Xiaopeng p7 et a parcouru 3 627 km. Le propriétaire du véhicule a partagé 6 avantages et inconvénients.
  44. 阿里蚂蚁花呗团队面试题:spring+分布式+jvm+session+redis
  45. 【Java入门100例】14.字符串排序——compareTo()
  46. 【Java入门100例】13.修改文件扩展名——字符串替换
  47. Leetcode 79. Word Search [C + + / java detailed problem]
  48. Introduction à la vérification des données hibernantes
  49. Expérience de la structure des données
  50. Spring cloud gateway practice 2: more routing configuration methods
  51. Java network programming - summary overview
  52. 基于语法树的 Java 代码自动化插桩
  53. 云原生 Spring Boot 应用配置 Prometheus + Grafana 监控(保姆级)
  54. Spring cloud gateway practice 2: more routing configuration methods
  55. Jenkins file one line of code to deploy. Net program to k8s
  56. Java network programming - summary overview
  57. Cloud Native Spring Boot application configuration Prometheus + grafana Monitoring (baby - sitter)
  58. Insertion automatique de code Java basée sur l'Arbre syntaxique
  59. Le SUV phare de Xiaopeng, Xiaopeng G9, a fait ses débuts au salon de l'automobile et s'est tenu en position C dans la nouvelle force?
  60. Docker 从入门到实践系列四 - Docker 容器编排利器 Docker Compose