기존 Windows 환경에서도 mysql 만 사용해 봤어서, Java 공부를 하는 김에 Oracle DB를 사용해 봐야겠다고 결심했다.
그런데 Mac 에서는 Docker를 사용해야 Oracle DB 를 사용할 수 있다는 사실을 알게 되었다. 구글링의 결과, Docker를 사용해 DB 를 설치하는 것은 간다해 보였는데…
Docker 설치
Doker-mac Login 후 다운로드
설치 순서에 따라 설치 한 후 Docker Desktop is running 이 뜨면 완료!
Oracle DB
- 맥 터미널에서 가장 유명하다는 이미지를 pull 시도
pull wnameless/oracle-xe-11g
자꾸 이런 에러가 발생했다.
Error response from daemon: pull access denied for wnameless/oracle-xe-11g, repository does not exist or may require ‘docker login
이에 대한 해결 방안
- docker login 후 다시 시도 -> 실패
- Docker Hub 에 oracle 검색 후 다운로드 수 많은 이미지를 pull -> 성공!
-
터미널에서 다시 pull
docker pull deepdiver/docker-oracle-xe-11g
-
컨테이너 실행 : 나는 -v 옵션을 주어 재사용을 하도록 할 것이다
docker run -d -p 49160:22 -p 49161:1521 -v ~/Users/my/oracle/data:/u01/app/oracle deepdiver/docker-oracle-xe-11g
-
~v 옵션 주다가 에러 너무 꼬여서.. 우선은 그냥 이렇게 실행 했다.
docker run --name oracle11g -d -p 49160:22 -p 49161:1521 deepdiver/docker-oracle-xe-11g
-
도커 컨테이너의 1521 포트를 로컬 호스트 49161 포트로 포트 포워딩 했다는 뜻
Oracle SQL Developer 설치
Oracle SQL Developer Downloads
다운 받고 압축을 푸니까 이렇게 생겼다.
첫 실행 화면
왼쪽 초록색 화살표를 눌러준다.
- Connection Name : 나는 내 계정 이름 (아무거나 해도 된다 함)
- Username : system
- Password : oracle
- Port : 49161
Test 하니까 Failure.. -> 도커 컨테이너를 ~v 옵션 없이 새로 팠다.
성공!
알게된 Docker 참고 명령어들
- 참고 링크 블로그에서 많이 참조했다.
docker logs -f oracle11g
: 컨테이너 log 출력 상황 확인
lsof -PiTCP -sTCP:LISTEN
: 포트 확인
docker port oracle11g
: oracle11g 컨테이너 포트 확인
docker exec -i -t oracle11g sqlplus
: -it옵션은 콘솔에 결과 출력. sqlplus 실행
docker ps
: 컨테이너상태 확인
docker ps -a
: 정지된 컨테이너 까지 확인
docker stats oracle11g
: 컨테이너 상태 확인
CONTAINER : 컨테이너명
CPU % : CPU 사용률
MEM USAGE/LIMIT : 메모리 사용량, 컨테이너에서 사용할 수 있는 메모리 제한
MEM % : 메모리 사용률
NET I/O : 네트워크 I/O
docker stop oracle11g
: 컨테이너 중지
docker restart oracle11g
: 컨테이너 재시작
docker pause oracle11g
: 컨테이너 일시 정지
docker unpause oracle11g
: 컨테이너 일시 정지 재시작
docker rm -f oracle11g
: 도커 이미지 삭제(-f 옵션은 실행 중 일때)
docker images
: 도커 이미지 리스트 출력
- 오탈자나 잘못된 부분 지적 감사히 수정하겠습니다 😆
참고링크
맥(Mac)에서 오라클 11g 설치 - 도커 환경 구축하기
Docker를 이용하여 Mac OSX에서 Oracle 사용하기 – 이승연 – Medium
맥(osx)에서 oracle DB 사용하기 (docker설치)