저는 개인 서버로 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
저는 두 번재 명령어만 입력하여 바로 설치 후 실행을 해보았습니다.
설치가 완료되면 아래의 명령어를 입력하여, 실행되고 있는 이미지를 확인합니다.
현재 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 데이터가 추가 될 것 같았는데 그러지는 않네요.
아직은 정확한 개념을 잘 모르는 것 같으니, 해당 내용은 추가 학습 후 나중에 따로 포스팅 하겠습니다.
출처: