윈도우 환경에서 Docker를 이용해 Oracle Database를 설치하기전에 먼저 Windows에서 WSL2(Windows Subsystem for Linux 2) 와 Docker Desktop 설치가 먼저 필요합니다.

 

1. Oracle Docker 이미지 다운로드 및 실행

1) Oracle Database Docker 이미지 받기

Docker Hub에는 공식 Oracle 이미지가 없지만, Oracle의 컨테이너 레지스트리에서 직접 받을 수 있습니다. 

// docker search 명령어로 image 검색  
docker search [image명]
docker search oracle

2) Oracle Container Registry에 로그인

Oracle Container Registry(https://container-registry.oracle.com/)에 접속 후 로그인

Database → Enterprise를 찾아 Accept License Agreement 클릭

Accept License Agreement 클릭 결과

 

3) docker login을 사용해서 Oracle 레지스트리에 로그인

C:\>docker login container-registry.oracle.com
Username: 사용자 오라클 아이디
Password: 사용자 오라클 패스워드
Login Succeeded

 

4) docker image pull 및 실행(run)

docker run -d --name docker-oracle 
-p 1521:1521 -p 5500:5500 
-e ORACLE_SID=ORCL 
-e ORACLE_PDB=ORCLPDB1 
-e ORACLE_PWD=admin1234 
container-registry.oracle.com/database/enterprise:21.3.0.0

 

설명

  • --name docker-oracle → 컨테이너 이름 지정
  • -p 1521:1521 → Oracle Listener 포트 연결
  • -p 5500:5500 → Oracle Enterprise Manager 포트 연결
  • -e ORACLE_SID=ORCL → 기본 SID 설정
  • -e ORACLE_PDB=ORCLPDB1 → 기본 PDB 이름 설정
  • -e ORACLE_PWD=admin1234 → 시스템 관리자 계정 비밀번호 설정
  • container-registry.oracle.com/database/enterprise:21.3.0 → 사용할 이미지

실행결과

C:\>docker run -d --name docker-oracle -p 1521:1521 -p 5500:5500 -e ORACLE_SID=ORCL -e ORACLE_PDB=ORCLPDB1 -e ORACLE_PWD=admin1234 container-registry.oracle.com/database/enterprise:21.3.0.0
locally
21.3.0.0: Pulling from database/enterprise
7c8051acdded: Pull complete
e8e925221939: Pull complete
588ca0fc7bfb: Pull complete
ae20812c4f08: Pull complete
d9825b0e2b89: Pull complete
a6246436cc89: Pull complete
f85ecbfecac3: Pull complete
c5203ee57353: Pull complete
706e9c3af817: Pull complete
8901a4ae8c19: Pull complete                                                        
a33ea7dcd68f: Pull complete
998fd4ce9410: Pull complete
d08d9a55c68d: Pull complete
a9475d76f917: Pull complete
bd9ddc54bea9: Pull complete
12e12fcd89bc: Pull complete
227a8fd94a56: Pull complete
8b6232f72c10: Pull complete
9af4cdee8387: Pull complete
Digest: sha256:c5ad975902cfe523a4ac9f046ec87cd0fd41c24118651ca0e7194f736ae4e3c7
Status: Downloaded newer image for container-registry.oracle.com/database/enterprise:21.3.0.0
17703b1f72f276429919f282619a3650df0f31c354d6cd9ed70544b35bb1fc6a

 

5) 컨테이너 정상 실행 확인 및 로그 확인

컨테이너가 정상적으로 실행되고 있는지 확인

docker ps

 

컨테이너 로그 확인

docker logs -f [컨테이너명]
docker logs -f docker-oracle

2. Oracle 접속 방법

SQLPlus로 접속

docker exec -it [컨테이너명] sqlplus [계정명]/[패스워드]@//[호스트]:[포트]/[PDB] as sysdba
docker exec -it docker-oracle sqlplus sys/admin1234@//localhost:1521/ORCLPDB1 as sysdba

 

만약, 아래와 같이 아이디와 비밀번호가 유효하지 않다는 에러가 나타난다면

PS C:\Users\maest> docker exec -it docker-oracle sqlplus sys/admin1234@//localhost:1521/ORCLPDB1 as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on Sat Mar 8 01:39:41 2025
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

Enter user-name: sys
Enter password:
ERROR:
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

Enter user-name: sysdba
Enter password:
ERROR:
ORA-01017: invalid username/password; logon denied

 

다음 명령어를 실행 후 다시 접속을 시도 해봅시다

docker exec [컨테이너명] ./setPassword.sh [패스워드]
docker exec docker-oracle ./setPassword.sh admin1234

 

Oracle SQL Developer로 접속

 

SQL Developer나 DBeaver 등을 이용해 다음과 같이 접속 가능합니다.

계정 만들기

1. SQLPlus로 sys계정으로 접속
C:\>docker exec -it docker-oracle sqlplus sys/admin1234@//localhost:1521/ORCLPDB1 as sysdba

2. 계정을 생성합니다
SQL> CREATE USER [계정명] IDENTIFIED BY [패스워드];
ex) CREATE USER lucky IDENTIFIED BY mypassword;

3. 권한 부여
SQL> GRANT [부여권한] TO [계정명]
ex) GRANT CONNECT, RESOURCE TO lucky;

4. 테이블 스페이스 할당량 세팅
SQL> ALTER USER [계정명] QUOTA [할당량] ON USERS;
ex) ALTER USER lucky QUOTA UNLIMITED ON USERS; -- 무제한
    ALTER USER lucky QUOTA 500M ON USERS;      -- 500MB로 제한
    ALTER USER lucky QUOTA 2G ON USERS;        -- 2GB로 제한

4. 정리

Docker Hub에는 공식 Oracle 이미지가 없지만, Oracle의 컨테이너 레지스트리에서 직접 받을 수 있습니다.

docker login을 사용해서 Oracle 레지스트리에 로그인 후 docker를 통해 image를 pull하고

SQLPlus를 통해 sysdba 계정으로 로그인 후 신규 계정을 생성하여 Oracle을 사용 할 수 있습니다.

+ Recent posts