목차
지난번 도커로 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 컨테이너 생성 정보
항목 | 항목 이름 | 값 |
이미지 이름 | image | mariadb:latest |
DB 관련 정보 | environment | |
Mysql 컨테이너 이름 | services | mariadb-container |
MYSQL 데이터베이스 이름 | MYSQL_DATABASE | MyDB |
MYSQL 사용자 | MYSQL_USER | korjsh |
Mysql 루트 비밀번호 | MYSQL_ROOT_PASSWORD | 1234 |
Mysql 비밀번호 | MYSQL_PASSWORD | 1234 |
포트 번호 설정 | ports | 3306:3306 |
연결 네트워크 | networks | network01 |
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
브라우저에서의 테스트

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