도커로 Oracle 간단 설치하기
도커, k8s와 같은 기술이 주목받은지도 이제 꽤 시간이 흐른 듯 합니다. 이미 실제 업무영역에서 다양하게 활용 중이죠.
Oracle Database를 설치하는 것은 매우 까다로운 작업 중 하나로 손꼽혔는데요. Oracle 설치만을 전담하는 엔지니어가 있을 정도로 Oracle 설치 시 고려해야 할 사항이나 사전 작업들이 복잡한 편이죠.
단순히 개인이 Oracle에서 SQL을 테스트 하는 정도로 사용하고 싶을 경우, Oracle을 도커로 간단하게 설치하는 방법이 있어 소개해보려 합니다. 실은 맥에서 Oracle SQL을 간단하게 연습할 방법이 없을까 생각하다가, 이렇게 해보았는데 매우 편리하고 좋네요.
도커 설치
우선 도커 설치가 필요한데, 이 포스팅에서 설명하고자 하는 내용에서 많이 멀어지므로 생략하도록 하겠습니다. 도커 공식홈페이지 설치매뉴얼을 대신합니다.
https://docs.docker.com/engine/install/
이미지 당겨오기
오라클 설치에 사용할 이미지를 당겨옵니다.
'oracle-xe'로 검색을 하면 다양한 이미지가 나오는데요. 아래 이미지가 가장 유명하고 많이 사용하는 듯 합니다.
-- 이미지 검색하기
docker search oracle-xe
-- 이미지 당겨오기
docker pull jaspeen/oracle-xe-11g
https://hub.docker.com/r/jaspeen/oracle-xe-11g
https://github.com/jaspeen/oracle-11g
컨테이너 띄우기
아래와 같이 컨테이너를 띄웁니다.
물론 포트 설정이나 이름 등은 개인의 설정에 따라 변경할 수 있습니다.
-- 당겨온 이미지로 컨테이너 실행하기
docker run --name oracle11g -d -p 8080:8080 -p 1521:1521 jaspeen/oracle-xe-11g
-- 컨테이너 뜬 것 확인
docker ps
DB 설치 끝! 충격적입니다. Oracle 설치를 직접 해보신 분이라면 아실 겁니다.
물론 실 운영 장비에 Oracle을 설치한다는 것은 더 다양한 것들을 고민해서 설치해야 하기 때문에 이것과 조금 차원이 다른 이야기 일 수는 있는데요. 개인 테스트 환경이라도 이렇게 간단하게 구성 해볼 수 있다는게 얼마나 신세계인지 모르겠습니다.
SQLPLUS 접속하기
아래와 같은 커멘드로 컨테이너 안 sqlplus를 통해 DB로 접속하실 수 있습니다.
해당 이미지에서 제공되는 기본 접속 정보는 system/oracle 입니다. (확인해보니 sys도 동일)
-- 컨테이너 내부 sqlplus로 디비 접속
docker exec -it oracle11g sqlplus
SQL*Plus: Release 11.2.0.2.0 Production on Sun Jan 17 16:15:45 2021
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Enter user-name:system
Enter password:oracle
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
-- DB에 접속해서 상태를 확인한 모습
select instance_name, version, status from v$instance;
INSTANCE_NAME VERSION STATUS
---------------- ----------------- ------------
XE 11.2.0.2.0 OPEN
번외1) 컨테이너에 bash로 접근하기
-- 컨테이너에 bash로 접근하기
docker exec -it oracle11g bash
번외2) 외부 툴로 DB 접속하기
개인적으로 dbeaver라는 툴을 추천해드리고 싶습니다.
맥에서도 지원을 하고, 다양한 DBMS를 한가지 툴로 접속할 수 있는 요긴한 툴 입니다.
디비버에 위와 같이 세팅하여 접근하면, 편리하게 도커에 얹어진 Oracle DB에 접속하여 SQL을 실행하실 수 있습니다.
날짜 | 내용 |
---|---|
2021.01.18 | 최초 글 작성 |
2021.07.21 | 글 해당 공간으로 복제 |