Maison  >  Article  >  Java  >  Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

WBOY
WBOYavant
2023-05-21 21:28:041709parcourir

1. Modifiez le fichier de configuration du docker

Modifiez le chemin des informations du fichier comme suit :
/etc/docker/daemon.json
Ajoutez le contenu suivant dans le fichier de configuration :

 "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Remarque : s'il n'existe pas de tel daemon.json, créez simplement un

touch daemon.json

tcp dans le répertoire /etc/docker/ pour activer l'accès à distance. Si l'accès local n'est pas activé, l'erreur suivante se produira lors de son utilisation sur le serveur. :

Impossible de se connecter au démon Docker sous unix:///var/run/docker.sock Le démon Docker est-il en cours d'exécution ?

Une fois la modification terminée, exécutez les commandes suivantes dans l'ordre :

#重新加载配置文件                  
systemctl daemon-reload 
# 重启服务 
systemctl restart docker.service 
# 查看端口是否开启 默认端口2375 
netstat -anp|grep 2375

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?.

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

2. Configurer l'ouverture du port

Exécuter dans l'ordre La commande suivante

添加指定需要开放的端口:
firewall-cmd --zone=public --add-port=2375/tcp --permanent
重载入添加的端口:
firewall-cmd --reload
查询指定端口是否开启成功:
firewall-cmd --query-port=2375/tcp

Remarque : La configuration ci-dessus est entièrement effectuée lorsque le pare-feu est activé. Si le pare-feu du système n'est pas activé, la configuration ci-dessus ne l'est pas. requis. Par exemple, mon serveur n'a pas de pare-feu configuré, et les informations suivantes s'affichent lors de l'exécution :

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Enfin, voyons si notre configuration prend effet

curl http://127.0.0.1:2375/info

Si les informations suivantes apparaissent, la configuration est réussie.

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

3. IDEA installe le plug-in Docker

Si la version de votre idée est supérieure, le plug-in Docker est intégré

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Ne vous inquiétez pas si vous ne l'avez pas, nous pouvons l'installer nous-mêmes

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

4. IDEA configurer Docker

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Remarque : Le 192.168.1.2 ci-dessus est ma propre adresse IP de serveur, remplacez-la simplement par votre docker. L'adresse IP du serveur est suffisante. Après avoir cliqué sur Appliquer, elle est suffisante. apparaîtra dans votre service. Cliquez pour vous connecter, et nous trouverons les informations sur le conteneur de notre configuration docker : Plug-in : Docker-maven-plugin

 <!--docker-maven-plugin插件打包-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <!--镜像名称-->
                    <imageName>${project.artifactId}</imageName>
                    <!--指定标签-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <!--基础镜像jdk1.8-->
                    <baseImage>java</baseImage>
                    <!--制作者提供本人信息-->
                    <maintainer>ninesun@qq.com</maintainer>
                    <!--切换到Root目录-->
                    <workdir>/ROOT</workdir>
                    <cmd>["java", "-version"]</cmd>
                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>

                    <!--指定DockerFile路径-->
                    <!--                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->

                    <!--指定远程docker api地址-->
                    <dockerHost>http://192.168.1.2:2375</dockerHost>

                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/ROOT</targetPath>
                            <!--用于指定需要复制的根目录-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要复制的jar文件-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

Toutes mes configurations maven sont les suivantes :



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.6.6
         
    
    com.example
    docker
    0.0.1-SNAPSHOT
    docker
    docker
    
        11
        true
        true
    
    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            <!--docker-maven-plugin插件打包-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <!--镜像名称-->
                    <imageName>${project.artifactId}</imageName>
                    <!--指定标签-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <!--基础镜像jdk1.8-->
                    <baseImage>java</baseImage>
                    <!--制作者提供本人信息-->
                    <maintainer>ninesun@qq.com</maintainer>
                    <!--切换到Root目录-->
                    <workdir>/ROOT</workdir>
                    <cmd>["java", "-version"]</cmd>
                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>

                    <!--指定DockerFile路径-->
                    <!--                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->

                    <!--指定远程docker api地址-->
                    <dockerHost>http://192.168.1.2:2375</dockerHost>

                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/ROOT</targetPath>
                            <!--用于指定需要复制的根目录-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要复制的jar文件-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        
    

Remarque : Après nous. tirez le plug-in avec succès, nous constaterons que la structure des répertoires devient la suivante :Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Nous devons en supprimer un. Démarrez la classe, sinon l'empaquetage échouera. J'ai supprimé directement l'application Docker

Image de construction 5.2

. Avant de construire l'image, nous devons d'abord empaqueter le projet

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?Entrez notre répertoire de projet via cmd

Exécuter

mvn docker:build

Le message suivant apparaît pour indiquer un emballage réussi

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Ensuite, revenez à notre idée, vous pouvez voir

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Ceci est notre image emballée

Exécuter sur le serveur

docker images

Vous pouvez également voir les informations sur l'imageComment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

5.3 Démarrer l'imageComment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Exécuter sur notre serveur

docker run -d --name idea-docker-test -p 8089:8080 docker

Remarque : La raison pour laquelle j'ai exposé le port 8089 est à cause d'un conflit avec 8080, changez-le simplement en fonction de votre propre situation

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?Accédons ensuite à l'interface de test que nous avons écrite :

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Vous pouvez voir qu'il a été déployé et accédé avec succès

Comment Idea emballe-t-elle et déploie-t-elle rapidement le projet SpringBoot dans une image Docker ?

Nous pouvons voir que dans Idea, nous pouvons également voir l'image que nous venons de démarrer avec succès et le journal de sortie

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