지난번 도커로 WEB-WAS 연동하기에 이어서 진행한다.

https://img.nuschool.co.kr/docker%eb%a1%9c-web-was%ec%97%b0%eb%8f%99

WAS : Tomcat 10.1.17 컨테이너

DB : MariaDB 11.2.2 컨테이너

도커 컨테이너에 MariaDB 커넥터 설치

Tomcat의 컨테이너에 MariaDB Connector 파일을 다운로드 한다.

아래 사이트로 가서 적절한 버전을 선택하고 아래 생성되는 링크를 다운받아 주도록 한다.

https://mariadb.com/downloads/connectors/connectors-data-access/java8-connector

그리고 커넥터를 톰캣 설치 디렉터리 밑에 있는 lib 디렉터리에 넣어 준다.

https://dlm.mariadb.com/3700566/Connectors/java/connector-java-3.3.2/mariadb-java-client-3.3.2.jar
# jar 파일 복사
cp -arp mariadb-java-client-3.3.2.jar /usr/local/tomcat/lib

그리고 MariaDB 컨테이너를 생성해준다.

MariaDB 컨테이너 생성 정보

항목 항목 이름
이미지 이름imagemariadb:latest
DB 관련 정보environment
Mysql 컨테이너 이름servicesmariadb-container
MYSQL 데이터베이스 이름MYSQL_DATABASEMyDB
MYSQL 사용자MYSQL_USERkorjsh
Mysql 루트 비밀번호MYSQL_ROOT_PASSWORD1234
Mysql 비밀번호MYSQL_PASSWORD1234
포트 번호 설정ports3306:3306
연결 네트워크networksnetwork01
docker run -d --name mariadb-container -e MYSQL_ROOT_PASSWORD=1234 -e MYSQL_DATABASE=MyDB -e MYSQL_USER=jsoonho -e MYSQL_PASSWORD=1234 -p 3306:3306 --network=network01 mariadb:latest

DB 연동 확인

Tomcat 설치 경로 내 webapps/ROOT/index.jsp 파일 내용을 아래와 같이 수정하자.

<%-- index.jsp 내용 --%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
</head>
<body>

<%
Connection conn = null;
String url = "jdbc:mariadb://mariadb-container:3306/MyDB";
String id = "jsoonho";                                          // 접속을 위한 계정의 ID
String pw = "1234";                                             // 접속을 위한 계정의 암호
Class.forName("org.mariadb.jdbc.Driver");
conn = DriverManager.getConnection(url, id, pw);
out.println("<h1>MariaDB DB 연결 성공</h1>");
%>
</body>

</html>

그리고 각각의 컨테이너들을 restart 해주자

docker container restart nginx000ex01
docker container restart tomcat000ex01
docker container restart mariadb-container

브라우저에서의 테스트

Docker로 WEB-WAS-DB연동 성공

이로써 도커로도 WEB-WAS-DB의 3-tier 아키텍쳐를 완성해 보았다.

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다