Maison  >  Article  >  Opération et maintenance  >  Les bases de Docker composent la structure des fichiers et les outils d'installation (exemples détaillés)

Les bases de Docker composent la structure des fichiers et les outils d'installation (exemples détaillés)

WBOY
WBOYavant
2022-02-07 17:39:404580parcourir

Cet article vous apporte des connaissances sur la composition dans Docker, y compris la structure des fichiers de composition et des connaissances sur l'installation de l'outil de composition Docker. J'espère qu'il vous sera utile.

Les bases de Docker composent la structure des fichiers et les outils d'installation (exemples détaillés)

Qu'est-ce que Docker Compose ?

docker compose est une fonction d'orchestration de conteneurs qui orchestre et fédère différents serveurs exécutés dans différents conteneurs.

peut être utilisé pour gérer la plupart des conteneurs de manière unifiée : y compris, mais sans s'y limiter : le réseau, le port, le montage, etc. peut être utilisé pour implémenter le clustering de conteneurs. Compose peut effectuer une série d'opérations liées aux conteneurs et aux images, c'est-à-dire une fonction pour gérer les conteneurs

1. Composer la structure du fichier

1. Fichier yml

La structure du fichier dans composer fait généralement référence à la structure du fichier yml.

Le fichier yml est un fichier au format clé-valeur.

Les fichiers yml sont très sensibles au format. Vous devez faire attention aux éléments suivants :

  1. Reconnaissez uniquement l'indentation des espaces, pas la forme d'indentation de la touche de tabulation
  2. Indentez généralement le début avec deux espaces
  3. après les caractères, indentez un espace, y compris, mais sans s'y limiter : deux points, virgule, barre horizontale et autres caractères. Les caractères doivent être indentés d'un espace
  4. Support utilisant # pour les commentaires
  5. Si des caractères spéciaux sont inclus, ils doivent être mis entre guillemets simples
  6. Les valeurs booléennes doivent être placées entre guillemets

Par exemple :

  house:
    family:
      name: Doe
      parents: 
        - John
        - Jane
      children: 
        - Paul
        - Mark
        - Simone
    address: 
      number: 34
      street: Main Street
      city: Nowheretown
      zipcode: 1234

format de fichier yml tel que ci-dessus, une correspondance niveau par niveau est requise et il y a deux espaces entre les différents niveaux.

Remarque : Si une clé a plusieurs valeurs dans un niveau, elle peut être utilisée dans le niveau suivant. Elle comporte également deux espaces vides, commençant par une courte barre horizontale et écrivant plusieurs barres horizontales de fin pour plusieurs valeurs.

2. Champs couramment utilisés dans la configuration de Compose

Field Description
build dockerfile centext Spécifiez le chemin du nom du fichier Dockerfile pour créer le contexte de l'image
images Spécifiez l'image
commande Exécutez la commande en écrasant la commande par défaut
nom du conteneur Spécifiez le nom du conteneur, car le nom du conteneur est unique. Si vous spécifiez un nom personnalisé, vous ne pouvez pas créer d'échelle
deploy Spécifier les configurations liées au déploiement et aux services en cours d'exécution. Vous ne pouvez utiliser que le mode Swarm
environnement Ajouter des variables d'environnement
réseaux . Réseau
ports Exposer le port du conteneur, comme -p, mais le numéro de port doit être supérieur à 60
volumts Monter le chemin de l'hôte ou le volume de commande
restart stratégie de redémarrage, par défaut non, toujours, en cas d'échec, sauf arrêt
hostname Container hostname

build : Une méthode de définition lors de la construction d'un miroir

dockerfile : La méthode consiste à utiliser dockerfile pour construire

context : Le chemin d'accès au fichier docerfile du service

images : Vous pouvez spécifier le nom de l'image à utiliser, par exemple : images : nom de l'image, remarque : il y a un espace après

command : Exécute une instruction

container name : utilisée pour spécifier le nom du conteneur, car le nom du conteneur est unique. Si vous spécifiez un nom personnalisé, vous ne pouvez pas mettre à l'échelle (définir un jeu de répliques)

#Jeu de répliques : créer une image dans plusieurs conteneurs. L'environnement d'exécution et les autres aspects de ces multiples conteneurs sont exactement les mêmes. Lorsqu'un conteneur dans l'architecture de conteneur se bloque, vous pouvez directement démarrer un conteneur identique pour maintenir le nombre de jeux de réplicas, et c'est aussi le cœur des K8. Il peut améliorer la vitesse des microservices, améliorer la reprise après sinistre et les performances de simultanéité élevées

déploiement : c'est un contrôleur, dans k8s, c'est un plug-in pour contrôler et gérer les jeux de réplicas

restart : une stratégie de redémarrage , la valeur par défaut est fermée. S'il n'est pas démarré après cela, si c'est toujours le cas, il démarrera automatiquement le conteneur à l'état fermé, qu'il soit fermé manuellement ou non. Sauf si arrêté, il ne tirera que le conteneur à l'état fermé. . En cas d'échec, le conteneur ne démarrera qu'avec un code retour non nul. Container om3, les commandes couramment utilisées de Compose

champs Build. PSupexecscaletoplogsdown stop/start/restart

docker compose基本使用格式:docker-compose [options] [COMMAND] [ARGS…]

docker-compose选项

  1. –verbose:输出更多调试信息
  2. –version:打印版本并退出
  3. -f /–file FILE:使用特定的compose模板文件,默认为docker-compose.yml
  4. -p /–project-name NAME:指定项目名称,默认使用目录名称

二、安装docker compose工具

1、下载

curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

首次连接下载的时候,可能会提示失误或者连接不上,可能是因为网络原因,可以多试几次

2、添加权限

文件在刚下载之后,默认是没有执行权限的,所以需要手动添加执行权限

chmod +x /usr/local/bin/docker-compos

3、运行docker-compose

docker-compose

可以看到,现在已经正常执行了

三、编译镜像

手动创建下面的文件(dockerfile文件之前有的话,直接拉取过来也是可以的)

tree
.
├── docker-compose.yml
├── nginx
│   ├── Dockerfile
│   ├── nginx-1.12.0.tar.gz
└── wwwroot
    └── index.html

其中yml文件内部

cat docker-compose.yml

version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 1321:80
      - 1707:443
    networks:
      - cluster
    volumes:
      - ./wwwroot: /usr/local/nginx/html
networks:
  cluster:

nginx的dockerfile文件

cat ./nginx/Dockerfile

FROM centos:7
ADD nginx-1.12.0.tar.gz /tmp
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null \
    && useradd -M -s /sbin/nologin nginx \
    && cd /tmp/nginx-1.12.0/ \
    && ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_stub_status_module &> /dev/null \
    && make &> /dev/null \
    && make install &> /dev/null
VOLUME ["/usr/local/nginx/html"]
EXPOSE 80
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

index.html文件中就是自己配置的网页信息,就不多做介绍了

确定之后,编译

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

查看运行结果

docker ps -a

CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS                      PORTS                                                                        NAMES
da38007f09ab   dockercompose_nginx   "/usr/local/nginx/sb…"   About a minute ago   Up About a minute           0.0.0.0:666->80/tcp, :::666->80/tcp, 0.0.0.0:667->443/tcp, :::667->443/tcp   dockercompose_nginx_1
#可以看到,这个端口信息就是我们在yml文件中设置的端口信息,直接在这个生效了

docker images

REPOSITORY                TAG       IMAGE ID       CREATED         SIZE
dockercompose_nginx       latest    b1e4b9dfa72d   3 minutes ago   478MB

访问网址端口,查看该网站页面

curl 192.168.75.51:666
hello
#显示结果
cat ./wwwroot/index.html
hello

推荐学习:《docker视频教程

décrites
reconstruire les informations d'un miroir
lister le conteneur actuellement contrôlé par le conteneur Container
Créer et démarrer le conteneur
Exécuter des commandes dans le conteneur
Spécifier le nombre de démarrages pour un serveur, ce qui équivaut au nombre de jeux de répliques
Afficher les processus du conteneur, tous les conteneurs démarrés par les processus contrôlés par docker compose
Afficher les informations de sortie du conteneur
Supprimer les conteneurs, les réseaux, les volumes de données et les miroirs
Stop/Start/Redémarrer le service de conteneur

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer