Heim > Java > javaLernprogramm > Hauptteil

Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit

PHPz
Freigeben: 2024-06-05 20:29:00
Original
774 Leute haben es durchsucht

Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit: Erstellen Sie eine Docker-Datei, um das Image zu definieren, erstellen Sie das Image, führen Sie den Container aus, ordnen Sie Ports zu und greifen Sie dann in einem Browser auf die Anwendung zu. Beispiel für eine JavaEE-Anwendung: Die REST-API interagiert mit der Datenbank und ist nach der Bereitstellung über Docker auf localhost zugänglich.

使用Docker Container部署JavaEE应用程序

Bereitstellen von JavaEE-Anwendungen mit Docker Container

Einführung

Docker ist eine Containerisierungsplattform, mit der Sie eine Anwendung und alle ihre Abhängigkeiten kapseln und einheitlich bereitstellen können. Dieses Tutorial führt Sie durch die Containerisierung und Bereitstellung von JavaEE-Anwendungen mit Docker.

Voraussetzungen

  • Docker Desktop installieren
  • Java JDK 11+ installieren
  • Bereiten Sie Ihre JavaEE-Anwendung vor

Schritte

1. Erstellen Sie eine Docker-Datei

Dockerfile Datei, die zum Definieren von Docker-Images verwendet wird. Dockerfile 的文件,用于定义 Docker 镜像。

FROM openjdk:11-jdk
COPY target/myapp.war /myapp.war
CMD ["java", "-jar", "/myapp.war"]
Nach dem Login kopieren
  • FROM 指示基础镜像。
  • COPY 复制 JavaEE WAR 文件到容器。
  • CMD 设置容器的默认命令。

2. 构建 Docker 镜像

在存储 Dockerfile 的目录中,运行以下命令:

docker image build -t myapp-image .
Nach dem Login kopieren

3. 运行 Docker 容器

构建镜像后,运行以下命令启动容器:

docker container run -p 8080:8080 myapp-image
Nach dem Login kopieren
  • -p 8080:8080 映射容器的 8080 端口到主机的 8080 端口。

4. 测试应用程序

在浏览器中访问 http://localhost:8080/<app-context-path>

实战案例

以下是对使用 Docker 部署的示例 JavaEE 应用程序:

一个简单的 REST API,提供与数据库交互的功能。

实现:

@RestController
@RequestMapping("/api/data")
public class DataController {

    @Autowired
    private DataService dataService;

    @GetMapping
    public List<Data> getAllData() {
        return dataService.findAll();
    }

    @PostMapping
    public Data createData(@RequestBody Data data) {
        return dataService.save(data);
    }
}
Nach dem Login kopieren

部署:

按照上述步骤使用 DockerfileDocker composerrreee

🎜FROM gibt das Basisbild an. 🎜🎜COPY Kopieren Sie die JavaEE WAR-Datei in den Container. 🎜🎜CMD Legen Sie den Standardbefehl des Containers fest. 🎜🎜🎜🎜2. Erstellen Sie das Docker-Image 🎜🎜🎜Führen Sie in dem Verzeichnis, in dem die Docker-Datei gespeichert ist, den folgenden Befehl aus: 🎜rrreee🎜🎜3. Führen Sie den Docker-Container aus 🎜🎜🎜Führen Sie nach dem Erstellen des Images den folgenden Befehl aus Starten Sie den Container: 🎜rrreee🎜🎜-p 8080:8080 ordnet den 8080-Port des Containers dem 8080-Port des Hosts zu. 🎜🎜🎜🎜4. Um die Anwendung zu testen 🎜🎜🎜 besuchen Sie http://localhost:8080/<app-context-path> in Ihrem Browser. 🎜🎜🎜Praktischer Fall🎜🎜🎜Das Folgende ist eine Beispiel-JavaEE-Anwendung, die mit Docker bereitgestellt wird: 🎜🎜Eine einfache REST-API, die die Funktionalität zur Interaktion mit der Datenbank bereitstellt. 🎜🎜Implementierung: 🎜rrreee 🎜Bereitstellung: 🎜🎜Folgen Sie den oben genannten Schritten, um diese Anwendung mit Dockerfile und Docker compose zu erstellen und bereitzustellen. 🎜

Das obige ist der detaillierte Inhalt vonStellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!