목록
1. Docker란 무엇인가요?
2. ArchLinux에 Docker 설치하기
3. Docker 서비스 시작
4. Docker 사용자 권한 설정
5. Docker가 제대로 설치 되었는지 확인
6. Docker 그룹 확인하기
7. Oracle-xe-11g란?
8. Oracle-xe-11g 이미지 검색
9. Oracle-xe-11g 이미지 내려받기
10. 도커 Oracle-xe-11g 컨테이너 만들기
11. 도커 컨테이너 실행
12. 도커 컨테이너 실행 정지
13. 도커 실행중인 컨테이너 확인
14. 도커 컨테이너 내부로 들어가기
15. Oracle Database 접속
16. Oracle Database DBEaver 연동하기
1. Docker란 무엇인가요?
Docker는 소프트웨어를 컨테이너라는 독립된 환경에서 실행할 수 있도록
도와주는 도구입니다. 예를 들어, Oracle 데이터베이스를 설치한다고 하면 보통은
운영체제에 직접 설치해야 하죠 그런데 Docker를 사용하면
운영체제와는 독립된 작은 환경(컨테이너) 안에 설치할 수 있어요
이렇게 하면 나중에 설정 충돌이 일어나지 않고, 쉽게 설치하거나 삭제할 수 있습니다.
2. ArchLinux에 Docker 설치하기
Docker 설치 명령어 : sudo pacman -S docker
설명 : Docker 패키지를 설치합니다.
ArchLinux에 도커를 설치합니다.
3. Docker 서비스 시작
명령어 : sudo systemctl start docker
, sudo systemctl enable docker
설명 : Docker 서비스를 시작하고, 부팅 시 자동으로 시작되도록 설정
현재 설치 후, 서비스 상태를 보면 disable로 처리되어 있습니다.
Docker 서비스 시작 및 부팅 시 자동 시작
설명 : Docker 서비스의 심볼릭링크가 생성이 되고,
docker.service 파일이 enable로 변경이 되는 걸 확인
이제 ArchLinux 부팅 시, 자동으로 docker 서비스가 실행 됩니다.
4. Docker 사용자 권한 설정
Docker 명령어를 사용할 때 마다 "sudo"를 입력하는 불편함을 줄이기 위해
현재 사용자를 Docker 그룹에 추가 합니다.
명령어 : sudo usermod -aG docker $USER
설명 : usermod : 사용자 계정을 수정하는 명령어
-aG docker : 현재 사용자를 Docker 그룹에 추가
$USER : 현재 로그인한 사용자를 의미합니다.
도커 그룹에 itleaderBigongja 사용자 추가
5. Docker가 제대로 설치 되었는지 확인
명령어 : docker info
설명 : docker의 정보를 확인하는 명령어
Permission 오류 발생
이 오류는 현재 사용자가 Docker를 실행할 권한이 없어서 발생하는 문제입니다.
쉽게 말해, Docker가 동작하기 위해
필요한 "문"에 들어갈 수 있는 열쇠(권한)가 없는 상태
Permission 오류 해결 방법
docker를 설치 후, docker라는 그룹을 만들어 실행 권한을 주었습니다.
그렇기 때문에 ArchLinux를 Reboot를 하면 해결이 됩니다.
6. Docker 그룹 확인하기
명령어 : vim /etc/grup
설명 : group 파일에 docker 그룹이 존재하는지 확인
group파일 확인
docker 그룹에 포함된 사용자 : itleaderBigongja
7. Oracle-xe-11g란?
Oracle-xe-11g는 Oracle Database 11g의 "Express Edition"입니다.
이 이미지는 Oracle의 경량 데이터베이스 버저인 XE 11g를 기반으로
합니다. Oracle XE는 상업용 버전의 일부 기능이 제한된 무료 버전 입니다.
oracleinanutshell/oracle-xe-11g 이미지란?
Oracle Database 11g Express Edition(이하 XE)을
Docker 컨테이너로 쉽게 실행할 수 있도록 패키징한 Docker 이미지
이 이미지는 Oracle XE를 미리 설치해둔 상태로 제공되며,
Docker 환경에서 빠르게 Oracle 데이터베이스를 시작할 수 있게
해줍니다.
컨테이너 화
이미지를 사용하면 Oracle XE를 별도의 설정이나 복잡한 설치
과정 없이 컨테이너 안에서 독립적으로 실행할 수 있습니다.
이는 개발 환경에서 특히 유용하며, 데이터베이스를
손쉽게 시작하거나 중지하고, 설정을 격리할 수 있습니다.
포트 매핑
기본적으로 1521 포트번호( Oracle의 기본 SQLNet 포트 )
와 8080 포트번호( 웹 기반 관리 콘솔을 위한 포트)를 사용
하는데, Docker의 포트 매핑 기능을 통해 호스트 시스템의
다른 포트로 매핑할 수 있습니다.
ojdbc11( Oracle JDBC 드라이버 )이란?
ojdbc11은 Oracle JDBC 드라이버로, 자바 애플리케이션이
Oracle 데이터베이스에 연결하고 SQL 쿼리를 실행할 수있게
해주는 라이브러리 입니다.
JDBC( Java Database Connectivity )는 자바에서
데이터베이스와 통신하기 위한 표준 API이며, ojdbc11는
Oracle 데이터베이스와 이 API를 통해 통신할 수 있도록 합니다.
주요 특징 | 설명 |
JDBC 드라이버 | JDBC 드라이버는 데이터베이스와 자바 애플리케이션 간의 통신을 중계하는 역할을 합니다. "ojdbc11"는 Oracle Database와 자바 애플리케이션 간의 데이터 전송을 관리하고, 자바의 SQL 명령어를 Oracle이 이해할 수 있는 형태로 변환합니다. |
JDBC 4.3 지원 | "ojdbc11" 드라이버는 Java 9부터 제공되는 JDBC 표준으로 Java 11이상에서의 다양한 기능을 지원합니다. 그리고 Java 17과 완벽히 호환되며, 모듈 시스템과도 통합될 수 있습니다. JDBC 4.3 API의 기능을 제공 합니다. |
성능 최적화 | ojdbc11은 최신 JVM의 성능 최적화와 Java 17의 새로운 기능을 지원합니다. 이는 고성능 애플리케이션에서 더욱 중요한 요소 입니다. |
이미지와 JDBC의 차이점과 상호 관계
oracleinanutshell/oracle-xe-11g Docker 이미지
실제 Oracle 데이터베이스 서버 인스턴스를 실행하는 환경을 제공합니다.
이는 물리적 서버 또는 가상 서버에서 실행되는 Oracle 데이터베이스와
동일한 기능을 합니다. 주로 데이터베이스 관리자가 서버를 관리하고,
데이터베이스 인스턴스 설정하고, 데이터를 저장하고 처리 합니다.
ojdbc11
자바 애플리케이션이 Oracle 데이터베이스와 상호작용할 수 있도록
하는 클라이언트 측, 드라이버 입니다.
개발자는 이 드라이버를 사용해 자바 애플리케이션에서 Oracle
데이터베이스에 연결하고, SQL 쿼리를 전송하여 데이터를
삽입, 조회, 수정 및 삭제할 수 있습니다.
예제 : SpringBoot Maven 의존성 추가
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11</artifactId>
<version>21.5.0.0</version>
</dependency>
예제 : application.properties 설정
spring.database.url=jdbc.oracle:thin:@localhost:1521:XE
spring.datasource.username=아이디 입력
spring.datasource.password=비밀번호 입력
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
상호관계
Oracle 11g를 Docker에서 실행하고, 자바 애플리케이션을
개발 중이라면, oracleinanutshell/oracle-xe-11g 이미지를 사용해
데이터베이스를 실행한 다음 "ojdbc11" 드라이버를 자바 애플리케이션에
추가하여 그 데이터베이스에 연결하게 됩니다.
Docker 컨테이너 내부에서 Oracle XE가 구동되고, 자바 애플리케이션은
"ojdbc11" 드라이버를 통해 컨테이너 내부의 데이터베이스와 통신하게 됩니다.
요약
oracleinanutshell/oracle-xe-11g
Oracle 데이터베이스 서버환경을 제공
ojdbc11
자바 애플리케이션이 그 데이터베이스와 통신하게
하는 클라이언트 드라이버
8. Oracle-xe-11g 이미지 검색
명령어 : docker search oracleinanutshell/oracle-xe-11g
설명 : Docker 컨테이너를 만들기 위해 이미지라는 것을 사용
이 이미지는 쉽게 말해 컨테이너를 만들기 위한 이미지
9. Oracle-xe-11g 이미지 내려받기
명령어 : docker search oracleinanutshell/oracle-xe-11g
설명 : docker pull 명령어는 Docker Hub에서
이미지를 다운로드하는 명령어
oracle-xe-11g 이미지 다운로드 완료
10. 도커 Oracle-xe-11g 컨테이너 만들기
명령어 : docker run -d -p 1521:1521 -p 8081:8080
--name developer oracleinanutshell/oracle-xe-11g
명령어 | 설명 |
docker run | 컨테이너를 생성하고 실행하는 명령어 |
-d | 컨테이너를 백그라운드에서 실행하도록 하는 옵션 |
-p 1521:1521 | 호스트의 포트 1521을 컨테이너의 포트 1521에 연결한다는 의미 ( 1521은 Oracle DB의 기본 포트번호 입니다. ) |
-p 8081:8080 | 호스트의 포트 8081을 컨테이너의 포트 8080에 연결합니다. 8080은 Oracle 웹 콘솔에 접속하는 포트번호이지만, Tomcat에서 8080포트번호를 사용하고 있기 때문에 8081로 변경 후, 포트충돌이 일어나지 않도록 예방 합니다. |
--name developer | 컨테이너의 이름을 "developer"로 지정하는 옵션 입니다. |
oracleinanutshell/ oracle-xe-11g |
oracleinanutshell/oracle-xe-11g는 실행할 Docker 이미지 입니다. |
11. 도커 컨테이너 실행
명령어 : docker start 컨테이너 이름
developer 컨테이너 실행
12. 도커 컨테이너 실행 정지
명령어 : docker stop 컨테이너 이름
developer 컨테이너 중지
13. 도커 실행중인 컨테이너 확인
명령어 : docker ps
현재 컨테이너가 아무것도 잡히지 않지만,
docker run 명령어 실행 후, oracle-xe-11g 컨테이너가 작동중인것을
확인할 수 있습니다.
도커 컨테이너 oracle-xe-11g 실행 확인
14. 도커 컨테이너 내부로 들어가기
명령어 : docker exec -it developer /bin/bash
명령어 | 설명 |
docker exec | 실행 중인 컨테이너에서 명령을 실행하는 명령어 |
-it | 터미널을 연결하여 상호작용할 수 있도록 합니다. |
developer | 대상 컨테이너의 이름입니다. |
/bin/bash | 컨테이너 내에서 bash 셸을 실행합니다. |
관리자 계정 root로 접근성공
15. Oracle Database 접속
명령어 : sqlplus system/oracle@//192.168.0.7:1521/xe
명령어 | 설명 |
sqlplus | Oracle 데이터베이스에 접속하는 클라이언트 도구 |
system | 기본 관리자 계정 |
oracle | 기본 관리자 비밀번호 |
@//localhost | 데이터베이스 접속 정보 [ Easy Connect 방식 ] @ : 이후에 데이터베이스의 접속 정보가 올 것임을 나타냅니다. // : (선택사항) 네트워크 호스트를 식별하기 위한 시작 부분. 이 부분은 '//'로 시작하며 host에 따릅니다. host : 데이터베이스가 실행 중인 서버의 호스트 이름 또는 IP 주소 입니다. port : (선택사항) 데이터베이스가 리스닝하고 있는 포트번호, 기본값은 1521 입니다. service_name : (선택사항) 데이터베이스의 서비스 이름. 일반적으로 특정 데이터베이스 인스턴스를 식별 Easy Connect 방식은 특히 로컬 환경이나 네트워크 상의 특정 데이터베이스에 연결할 때 유용합니다. |
xe | Oracle Express Edition 데이터베이스의 SID( System Identifier )입니다. |
16. Oracle Database DBEaver 연동하기
ojdbc11.jar 파일 설치하기
JDBC and UCP Download page | Oracle 대한민국 접속
Oracle Database JDBC Driver 설치 ( ojdbc11.jar )
DBEaver Oracle연동 시작
데이터베이스(D) / 새 데이터베이스 연결 / Oracle 선택
Oracle을 선택한 다음에 다음 버튼 클릭
목록 | 설명 |
Host | ArchLinux에 연결한 어댑터 브리지로 할당 받은 독립적IP 입력 |
Database | 기본 데이터베이스 xe |
Username | 기본 데이터베이스 시스템 계정 아이디 system |
Passwod | 기본 데이터베이스 시스템 계정 비밀번호 oracle |
Libraries 탭으로 이동
기존에 있는 jdbc가 있긴 하지만, 우리는 ojdbc11.jar 파일을 사용하기 때문에
전부 삭제해 주세요. 그런다음 Add File을 클릭해 주세요.
ojdbc11.jar 파일 추가
Settings 탭 셋팅
Test Connection 버튼 클릭
DBEaver 데이터베이스 연결 성공
Docker Oracle-xe-11g DBEaver연동 성공
'리눅스 > Window10 Arch Linux' 카테고리의 다른 글
Window 10 Intellij Maven으로 생성한 SpringBoot 프로젝트 MyBatis 라이브러리 추가 (0) | 2024.08.20 |
---|---|
Window 10 Intellij SpringBoot MVC 프로젝트 만들기, GitHub 연동 (0) | 2024.08.19 |
Window 10 ArchLinux에서 디스크 용량 체크 및 파일 찾기 (0) | 2024.08.15 |
Window 10 ArchLinux Maven과 Gadle (0) | 2024.08.15 |
Window 10 Tomcat 403에러 ( 파일 권한 ) 오류 해결 (0) | 2024.08.12 |