인프라/Docker&Kubernetes 2018. 8. 10. 00:07

mac os 환경에서 docker를 이용한 oracle 11g 설치 



우선 진행하기 전에 자신의 os에 맞는 docker를 다운로드 해줍니다.


  

1)docker pull wnameless/oracle-xe-11g

=>oracle 11g 도커이미지 다운로드, 여기서 이미지란 컨테이너에서 oracle를 실행시킬 수 있는 모든 파일이 포함된 것이라고 생각하면 됩니다.(변하지 않는 파일)

    즉, 이 이미지 파일을 이용하여 컨테이너에서 oracle을 실행시킬 수 있는 것입니다.



2)docker run --name oracle11g -d -p 59161:22 -p 59162:1521 -p 59163:8080 -v ~/my/oracle/data:/var/lib/oracle -e ORACLE_ALLOW_REMOTE=true --restart=always wnameless/oracle-xe-11g

=>1번 과정에서 이상없이 이미지를 다운로드 했다면 그 이미지를 이용하여 컨테이너에서 oracle을 할당/실행시키는 명령어 입니다.(적절한 컨테이너를 할당)

--name =>이름을 정해줍니다. 앞으로는 이 이름으로 oracle을 실행시킵니다.

-d =>백그라운드에서 실행시킨다는 의미

-p =>도커는 어떻게 보면 가상머신 위에서 돌아가는 것과 비슷한 의미입니다. 59162의 나의 로컬 port와 컨테이너에 할당된 가상환경의 1521 port를 연결시켜서 

나의 로컬과 컨테이너에 올라간 가상환경의 연결을 명시하는 것입니다.(실제로 sqldeveloper나 jdbc를 이용할때 1521이 아닌 59162으로 연결해줍니다.)

-v =>docker를 이용하여 데이터베이스를 이용할 때, 컨테이너를 실행시키고 데이터를 삽입하고, 수정하는 등의 작업을 진행한 후에 컨테이너를 종료했다가 다시

실행시키면 모든 데이터가 날라가게 됩니다. 즉, 이 옵션은 볼륨관련 설정인데 나의 local 디렉토리에 데이터를 유지해주는 역할을 합니다.(컨테이너를 종료

해도 데이터가 날라가지않음)

그 외 기타옵션





3)docker start oracle11g =>오라클 실행


4)docker logs oracle11g =>log를 볼 수 있는 명령어


5)docker stop oracle11g =>오라클 종료


6)docker rm oracle11g =>컨테이너 삭제


7)docker restart oracle11g =>오라클 재시작


이후에 만약 sqldeveloper로 오라클을 운영한다는 가정하에, locale관련 문제로 접속을 하지 못하는 일이 발생할수 있다.(port는 59162로 접속해야함)

이 문제는 맥에서 발생하는 문제인데,(다른 os에서 발생하는지는 모르지만 필자는 윈도우에서는 발생하지 않음) 맥 os 업그레이드 과정에서 locale이 

변경되어 반영되지 못하는 문제이다. 언어를 미국으로 바꾸었다가 다시 대한민국으로 바꾸면 locale 문제는 해결된다.


docker exec -it oracle11g bash


=>docker가 컨테이너를 할당 받아서 띄운 가상 OS 들어가는 명령



posted by 여성게
: