oracle-xe-11g을 docker 를 이용하여 설치 후 이용해보기

 

저는 개인 서버로 ubuntu를 사용합니다. 
하지만 ubuntu위에 oracle 서버를 설치하는 것은 매우도 복잡하고 곤욕스런 작업입니다.
각종 환경변수를 세팅하는 등 복잡한 과정들이 많이 있으며, 심지어 그렇게 해도 안되더군요...(일단 정지)

그래서 docker 를 어렴풋이 알고 있고, 아직 제대로 써본적은 없는데 이번에 써 보기로 했습니다. 







아래의 명령어를 입력하여 오라클 11g의 이미지를 다운받습니다. (버전은 Express edition 이네요)
wnameless/oracle-xe-11g 의 이미지가 가장 인기가 많다고 합니다 .

docker pull wnameless/oracle-xe-11g


설치가 완료되면 아래와 같은 명령어를 입력해줘서 실행해봅니다. 

docker run -d -p 59160:22 -p 59161:1521 wnameless/oracle-xe-11g


이미지가 설치되어있지 않은 상태에서 run 을 해주면 자동으로 설치합니다. 
저는 두 번재 명령어만 입력하여 바로 설치 후 실행을 해보았습니다. 





설치가 완료되면 아래의 명령어를 입력하여, 실행되고 있는 이미지를 확인합니다. 
현재 oracle-xe-11g 가 잘 실행되고 있는 것을 확인할 수 있습니다. 
59160 포트로 접속하면 된다고 합니다. 

docker ps 



저는 DataGrip 을 이용하여 접속해보았습니다. (동일 컴퓨터에서)




연결이 성공적으로 진행되었습니다. 



아래와 같은 쿼리를 수행하면 잘 삽입되는 것을 확인했습니다. (Database는 System 이 아니라 다른 것을 사용하는게 좋겠습니다.)

CREATE TABLE TEST( 
testno NUMBER(5) NOT NULL, -- -99999 ~ +99999
mname VARCHAR(20) NOT NULL, -- 한글 10
funct VARCHAR(50) NOT NULL, -- 주요 기술 분야
PRIMARY KEY (testno) -- 중복 안됨, 고유한 값만 가능
);

INSERT INTO test(testno, mname, funct)
VALUES(1, '테스터', 'JAVA');
SELECT * FROM TEST;




변경이 되었으니 commit 을 해보았습니다.




docker commit -m "커밋할 이름" 컨테이너ID 원하는이미지이름:버전명 

위와 같은 명령어를 입력해줍니다. 




시간이 좀 걸리고 sha~~ 라고 뜨게 됩니다. 


docker images 

위 명령어를 사용해서 이미지를 확인해보면 oracle_havedata 라는 image 가 새로 생성되었습니다. 


생성한 이미지를 바탕으로 새로 docker 컨테이너를 생성해서 table 이 생성되어 있고, 데이터가 잘 들어가 있는지 확인합니다. 

docker run -d -p 50704:22 -p 50705:1521 oracle_havedata:0.2


명령어를 입력해주고 docker 을 50705 포트로 열어 준 뒤에 datagrip을 사용해서 데이터를 확인해보면? 

database 가 없습니다....


일단 오라클은 아주 잘 작동하는데, 오라클에서 생긴 데이터를 백업하거나 저장하려면 어떻게 해야하는지는 잘 모르겠네요. 
이미지를 commit 하면 당연히 DB 데이터가 추가 될 것 같았는데 그러지는 않네요. 

아직은 정확한 개념을 잘 모르는 것 같으니, 해당 내용은 추가 학습 후 나중에 따로 포스팅 하겠습니다. 




출처: 

http://jojoldu.tistory.com/169