Docker 컨테이너를 사용하여 JavaEE 애플리케이션 배포: Dockerfile을 생성하여 이미지를 정의하고, 이미지를 빌드하고, 컨테이너를 실행하고 포트를 매핑한 다음, 브라우저에서 애플리케이션에 액세스합니다. 샘플 JavaEE 애플리케이션: REST API는 데이터베이스와 상호 작용하고 Docker를 통해 배포되며 localhost에서 액세스할 수 있습니다.
Docker 컨테이너를 사용하여 JavaEE 애플리케이션 배포
소개
Docker는 애플리케이션과 모든 종속 항목을 캡슐화하고 균일하게 배포할 수 있는 컨테이너화 플랫폼입니다. 이 튜토리얼에서는 Docker를 사용하여 JavaEE 애플리케이션을 컨테이너화하고 배포하는 과정을 안내합니다.
전제 조건
- Docker Desktop 설치
- Java JDK 11+ 설치
- JavaEE 애플리케이션 준비
단계
1 Dockerfile 만들기
커파일 Docker 이미지를 정의하는 데 사용되는 파일입니다. Dockerfile
的文件,用于定义 Docker 镜像。
FROM openjdk:11-jdk COPY target/myapp.war /myapp.war CMD ["java", "-jar", "/myapp.war"]
-
FROM
指示基础镜像。 -
COPY
复制 JavaEE WAR 文件到容器。 -
CMD
设置容器的默认命令。
2. 构建 Docker 镜像
在存储 Dockerfile 的目录中,运行以下命令:
docker image build -t myapp-image .
3. 运行 Docker 容器
构建镜像后,运行以下命令启动容器:
docker container run -p 8080:8080 myapp-image
-
-p 8080:8080
映射容器的 8080 端口到主机的 8080 端口。
4. 测试应用程序
在浏览器中访问 http://localhost:8080/<app-context-path></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); } }
部署:
按照上述步骤使用 Dockerfile
和 Docker compose
rrreee
FROM
은 기본 이미지를 나타냅니다. 🎜🎜COPY
JavaEE WAR 파일을 컨테이너에 복사합니다. 🎜🎜CMD
컨테이너의 기본 명령을 설정합니다. 🎜🎜🎜🎜2. Docker 이미지를 빌드합니다. 🎜🎜🎜Dockerfile이 저장된 디렉터리에서 다음 명령을 실행합니다. 🎜rrreee🎜🎜3. Docker 컨테이너를 실행합니다. 🎜🎜🎜이미지를 빌드한 후 다음 명령을 실행합니다. 컨테이너를 시작합니다. 🎜rrreee🎜🎜-p 8080:8080는 컨테이너의 8080 포트를 호스트의 8080 포트에 매핑합니다. 🎜🎜🎜🎜4 애플리케이션을 테스트하려면 🎜🎜🎜 브라우저에서 http://localhost:8080/<app-context-path></app-context-path>
를 방문하세요. 🎜🎜🎜실용 사례🎜🎜🎜다음은 Docker를 사용하여 배포된 샘플 JavaEE 애플리케이션입니다. 🎜🎜데이터베이스와 상호 작용하는 기능을 제공하는 간단한 REST API입니다. 🎜🎜구현: 🎜rrreee 🎜배포: 🎜🎜위 단계에 따라 Dockerfile
및 Docker compose
를 사용하여 이 애플리케이션을 빌드하고 배포하세요. 🎜위 내용은 Docker 컨테이너를 사용하여 JavaEE 애플리케이션 배포의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사에서는 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 및 Gradle을 사용하여 접근 방식과 최적화 전략을 비교합니다.

이 기사에서는 Maven 및 Gradle과 같은 도구를 사용하여 적절한 버전 및 종속성 관리로 사용자 정의 Java 라이브러리 (JAR Files)를 작성하고 사용하는 것에 대해 설명합니다.

이 기사는 카페인 및 구아바 캐시를 사용하여 자바에서 다단계 캐싱을 구현하여 응용 프로그램 성능을 향상시키는 것에 대해 설명합니다. 구성 및 퇴거 정책 관리 Best Pra와 함께 설정, 통합 및 성능 이점을 다룹니다.

이 기사는 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA를 사용하는 것에 대해 설명합니다. 잠재적 인 함정을 강조하면서 성능을 최적화하기위한 설정, 엔티티 매핑 및 모범 사례를 다룹니다. [159 문자]

Java의 클래스 로딩에는 부트 스트랩, 확장 및 응용 프로그램 클래스 로더가있는 계층 적 시스템을 사용하여 클래스로드, 링크 및 초기화 클래스가 포함됩니다. 학부모 위임 모델은 핵심 클래스가 먼저로드되어 사용자 정의 클래스 LOA에 영향을 미치도록합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
