Heim  >  Artikel  >  Java  >  Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

WBOY
WBOYnach vorne
2023-05-21 21:28:041728Durchsuche

1. Ändern Sie die Docker-Konfigurationsdatei

Ändern Sie den Dateiinformationspfad wie folgt:
/etc/docker/daemon.json
Fügen Sie den folgenden Inhalt in der Konfigurationsdatei hinzu:

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

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

Hinweis: Wenn kein solcher vorhanden ist Daemon.json, erstellen Sie einfach ein

touch daemon.json

tcp im Verzeichnis /etc/docker/, um den Remotezugriff zu ermöglichen. Wenn der lokale Zugriff nicht aktiviert ist, tritt bei der Verwendung auf dem Server der folgende Fehler auf :

Es kann keine Verbindung zum Docker-Daemon unter Unix hergestellt werden: ///var/run/docker.sock Läuft der Docker-Daemon?

Führen Sie nach Abschluss der Änderung die folgenden Befehle nacheinander aus:

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

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

2. Portöffnung konfigurieren

Führen Sie den folgenden Befehl nacheinander aus:

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

Hinweis: Die obige Konfiguration wird vollständig ausgeführt, wenn die Firewall des Systems nicht aktiviert ist Auf meinem Server ist beispielsweise keine Firewall konfiguriert und beim Ausführen werden folgende Informationen angezeigt:

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

Schließlich sehen wir, ob unsere Konfiguration wirksam wird

curl http://127.0.0.1:2375/info

Wenn die folgenden Informationen angezeigt werden, ist die Konfiguration erfolgreich

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

3. IDEA installiert das Docker-Plugin

Wenn Ihre Idea-Version höher ist, ist das Docker-Plugin integriert

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

Machen Sie sich keine Sorgen, wenn Sie es nicht haben, wir Sie können es selbst installieren wird in Ihrem Dienst angezeigt

Klicken Sie, um eine Verbindung herzustellen. Wir finden die Containerinformationen unserer Docker-Konfiguration

 <!--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>
Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?Alle meine Maven-Konfigurationen lauten wie folgt:



    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>
        
    

Hinweis: Nachdem wir das Plug-In erfolgreich gezogen haben, werden wir feststellen, dass die Verzeichnisstruktur wie folgt aussieht:

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

Wir müssen einen löschen. Starten Sie die Klasse. Andernfalls schlägt das Packen fehl. Ich habe das DockerApplication-Build-Image direkt gelöscht.

5.2-Build-Image Die folgende Meldung zeigt an, dass die Verpackung erfolgreich war

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

Als nächstes kehren wir zu unserer Idee zurück, Sie können sehen

Dies ist unser verpacktes Bild

Auf dem Server ausführen

mvn docker:build

Außerdem können Sie die Bildinformationen sehen

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

5.3 Starten Sie das Image.

Auf unserem Server ausführen Testschnittstelle haben wir geschrieben:

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

Sie können sehen, dass es erfolgreich bereitgestellt und erfolgreich aufgerufen wurde

Wie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?

Wir können sehen, dass wir in Idea auch das Bild sehen können, das wir gerade erfolgreich gestartet haben, und das Ausgabeprotokoll

Das obige ist der detaillierte Inhalt vonWie kann die Idee das SpringBoot-Projekt schnell in einem Docker-Image verpacken und bereitstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen