Utilisez Docker, Docker-compose pour déployer des microservices

1. Utiliser le déploiement Docker

1. Préparez-vous

Ici, Redis et nacos ont été installés et démarrés dans docker, et le fichier "ruoyi-gateway-prod.yml" a été configuré.

Notez que s'il existe des informations de connexion telles que Redis, MySQL et nacos dans le fichier de configuration, vous devez remplacer l'adresse IP par l'adresse du réseau public ou l'adresse intranet du serveur, et la connexion n'échouera pas.
insérer la description de l'image ici

2. Téléchargez le package jar

Ici, je prends comme exemple le service de passerelle de la version du micro-service Ruoyi et je le télécharge dans le répertoire spécifié.

insérer la description de l'image ici

3. Écrivez le fichier docker

Documentation officielle :

https://docs.docker.com/engine/reference/builder/

L'anglais semble un peu difficile, Ruoyi a un tutoriel de chinois ici

insérer la description de l'image ici

Voici l'adresse du document de Zoé :

http://doc.ruoyi.vip/ruoyi-cloud/cloud/dokcer.html#dockerfile

Obtenez d'abord l'image de base nécessaire pour construire l'image, c'est-à-dire l'image jdk, et regardez d'abord les images jdk

docker search openjdk

insérer la description de l'image ici
Voici l'image de jdk8

docker pull openjdk:8-jre

insérer la description de l'image ici
Je l'ai déjà récupéré, cela pourrait être un peu plus lent la première fois.

Créez ensuite un fichier nommé dockerfile, le nom du fichier peut être personnalisé, généralement c'est dockerfile, le contenu est le suivant :
insérer un extrait de code ici

# 基础镜像
FROM  openjdk:8-jre
# author
LABEL author="gan"

# 创建目录
RUN mkdir -p /home/jar
# 指定路径,后面运行的jar包就是在这个目录
WORKDIR /home/jar
# 挂载目录
VOLUME /home/jar

# 复制jar文件到路径,第一个是宿主机文件目录(dockerfile所在目录,不能是绝对路径),第二个是容器文件目录
COPY ./ruoyi-gateway.jar /home/jar/ruoyi-gateway.jar

# 启动网关服务jar包
ENTRYPOINT ["java","-jar","-Xms256M","-Xmx256M","ruoyi-gateway.jar"]

Télécharger dans le même répertoire que le package jar

insérer la description de l'image ici

Si vous souhaitez copier plusieurs fichiers dans le conteneur, vous pouvez le faire

insérer la description de l'image ici

3. Créez des images et des conteneurs

Construisez l'image miroir dans le répertoire courant. Notez que le "." suivant n'est pas redondant. La commande est la suivante :

docker build -f /www/wwwroot/changjing/jar/gateway/dockerfile -t ruoyi-gateway .

expliquer:

-f : suivi du chemin du fichier docker
-t : étiquette l'image construite, qui est le nom de l'image construite

Avis:

La commande pour exécuter l'image de construction doit être dans le répertoire où se trouve le fichier docker, car la commande "COPY" du fichier docker ne peut être que dans un répertoire relatif par rapport au fichier docker, et une erreur sera signalée si le répertoire absolu de l'hôte est utilisé pour construire.

Les résultats d'exécution sont les suivants :

insérer la description de l'image ici

La build a réussi, car je l'ai déjà construite avec succès auparavant, et elle peut être différente de la première build.

Démarrez ensuite le miroir, la commande est la suivante :

docker run -d --name ruoyi-gateway -p 8010:8010 ruoyi-gateway

expliquer:

–name : suivi du nom du conteneur, qui est le même que le nom de l'image ici
-p : suivi du mappage de port entre l'hôte et le conteneur, avant : : est le port du serveur, après : : est le
dernier port du conteneur Seata est le nom de l'image

Vous pouvez voir que le conteneur est en cours d'exécution.

insérer la description de l'image ici

2. Utilisez docker-compose pour déployer

L'utilisation de docker-compose pour déployer des services est basée sur le déploiement de docker, l'ajout de fichiers docker-compose.yml pour gérer les conteneurs de services de manière unifiée et l'implémentation d'une commande pour démarrer ou fermer tous les conteneurs de services. Ainsi, pour utiliser le déploiement de docker-compose, vous doit d'abord apprendre à utiliser le déploiement docker , est une méthode de déploiement confortable qui est gênante au début et confortable à un stade ultérieur.

Ruoyi propose également des tutoriels connexes :

http://doc.ruoyi.vip/ruoyi-cloud/cloud/dokcer.html#docker-compose

1. Préparez le package jar et le fichier docker pour le service

Sur la base de la conservation du package jar et du dockerfile de la passerelle dans Ruoyi, ajoutez le package jar et le dockerfile d'auth. Le dockerfile d'auth est similaire à la passerelle, comme suit :

# 基础镜像
FROM  openjdk:8-jre
# author
LABEL author="gan"

# 创建目录
RUN mkdir -p /home/jar
# 指定路径
WORKDIR /home/jar
# 挂载目录
VOLUME /home/jar

# 复制jar文件到路径,第一个是宿主机文件目录(dockerfile所在目录,不能是绝对路径),第二个是容器文件目录
COPY ./ruoyi-auth.jar /home/jar/ruoyi-auth.jar
# 启动系统服务
ENTRYPOINT ["java","-jar","-Xms256M","-Xmx256M","ruoyi-auth.jar"]

insérer la description de l'image ici

Télécharger vers le dossier spécifié

insérer la description de l'image ici

insérer la description de l'image ici

2. Écrivez le fichier docker-compose.yml

La version docker correspondant au fichier docker-compose.yml sur le site officiel
insérer la description de l'image ici

Voici ma version Docker :

insérer la description de l'image ici

La version du fichier de mon docker-compose.yml est donc 3.8.

Il n'y a que du contenu lié à la passerelle et à l'authentification dans le fichier, comme suit :

# 描述 Compose 文件的版本信息
version : '3.8'

# 定义服务,可以多个,每个服务中定义了创建容器时所需的镜像、参数、依赖等
services:
  ruoyi-gateway:  # 服务名称,跟构建镜像名称有关,假如image值为空,那么生成的镜像名称为“docker-compose.yml文件所在目录名称_ruoyi-gateway”,我放在jar目录,生成的镜像名称就是jar_ruoyi-gateway
    image: ruoyi-gateway  # 构建镜像名称
    container_name: ruoyi-gateway   # 容器名称
    build:
      context: ./gateway    # 构建镜像的jar包和dockerfile文件所在的目录(相对于docker-compose.yml文件,我这里gateway目录是跟docker-compose.yml文件同一目录)
      dockerfile: dockerfile  # 构建网关镜像的文件名称
    ports:
      - "8010:8010"   # 构建容器端口号,“:”前为宿主机端口,“:”后为容器端口
  ruoyi-auth:
    image: ruoyi-auth
    container_name: ruoyi-auth
    build:
      context: ./auth
      dockerfile: dockerfile
    ports:
      - "9200:9200"

Une fois le fichier écrit, téléchargez-le dans le répertoire spécifié

insérer la description de l'image ici

3. Commandes courantes pour docker-compose

(1) Créez un miroir au premier plan et démarrez le conteneur

Semblable à l'utilisation de la commande java -jar pour démarrer le package jar, veillez à l'exécuter dans le répertoire où se trouve le fichier docker-compose.yml, la commande est la suivante :

docker-compose up

insérer la description de l'image ici
Une fois la fenêtre fermée, le service s'arrêtera. Il peut être utilisé lors du premier démarrage du service. Le nom du service est à l'extrême gauche. Si chaque service ne voit pas l'erreur de journal, cela signifie que le démarrage a réussi. .

insérer la description de l'image ici
Ctrl+C pour quitter, mais même s'il est fermé, l'image et le conteneur créés existent toujours

insérer la description de l'image ici

(2) Créez un miroir en arrière-plan et démarrez le conteneur

Il faut également l'exécuter dans le répertoire où se trouve le fichier docker-compose.yml. La commande est la suivante :

docker-compose up -d

insérer la description de l'image ici

Vous pouvez également préciser le chemin du fichier docker-compose.yml, la commande est la suivante :

docker-compose -f /www/wwwroot/changjing/jar/docker-compose.yml up -d

insérer la description de l'image ici

L'exécution n'imprimera pas le journal de chaque démarrage de service, vous devez afficher le journal, vous pouvez utiliser la commande suivante pour l'afficher

docker-compose logs

insérer la description de l'image ici
Si vous souhaitez uniquement voir le journal du service ruoyi-auth, vous pouvez utiliser la commande suivante

journaux docker-compose ruoyi-auth

insérer la description de l'image ici

(3), afficher le conteneur démarré

Vous pouvez visualiser tous les conteneurs démarrés par le fichier docker-compose.yml, la commande est la suivante :

docker-compose ps

insérer la description de l'image ici

Vous pouvez également spécifier le nom du service, par exemple, exécuter pour voir si ruoyi-auth est démarré, la commande est la suivante :

docker-compose ps ruoyi-auth

insérer la description de l'image ici

Notez qu'il ne peut être exécuté que dans le répertoire où se trouve le fichier docker-compose.yml, et une erreur sera signalée lors de son exécution dans d'autres répertoires.

insérer la description de l'image ici

4. Arrêter le service (y compris la suppression)

Pour arrêter et supprimer tous les conteneurs de services sans supprimer l'image, la commande est la suivante :

docker-compose down

Vous pouvez voir que l'image est toujours là, mais le conteneur correspondant a été supprimé.

insérer la description de l'image ici
Pour visualiser l'image correspondant au conteneur de service, la commande est la suivante :

docker-compose images

insérer la description de l'image ici

Arrêtez et supprimez les conteneurs, réseaux et miroirs de tous les services du projet. La commande est la suivante :

docker-compose down --rmi all

insérer la description de l'image ici
Cette méthode peut être utilisée pour arrêter si le package jar est à nouveau téléchargé.

5. Démarrez le conteneur de services

Démarrez les conteneurs de tous les services du projet, la commande est la suivante :

docker-compose start

insérer la description de l'image ici
Vous pouvez également ajouter le nom du conteneur à la commande ci-dessus pour démarrer le conteneur spécifié. Par exemple, je démarre uniquement le conteneur de passerelle. La commande est la suivante :

docker-compose start ruoyi-gateway

insérer la description de l'image ici

6. Fermez le conteneur de service

Fermez tous les conteneurs de services du projet, la commande est la suivante :

docker-compose stop

insérer la description de l'image ici
Vous pouvez également ajouter le nom du conteneur à la commande ci-dessus pour fermer le conteneur spécifié. Par exemple, je ferme uniquement le conteneur d'authentification. La commande est la suivante :

docker-compose stop ruoyi-auth

insérer la description de l'image ici

7. Redémarrez le conteneur de services

Redémarrez tous les conteneurs de services du projet, la commande est la suivante :

docker-compose restart

insérer la description de l'image ici

Vous pouvez également ajouter le nom du conteneur à la commande ci-dessus pour redémarrer le conteneur spécifié. Par exemple, je redémarre uniquement le conteneur d'authentification. La commande est la suivante :

docker-compose restart ruoyi-auth

insérer la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/studio_1/article/details/132235696
conseillé
Classement