Preview
http://1004lucifer.blogspot.com/2019/11/docker-oracle-12c-oracle.html
위 포스트의 글을 참조하고 따라하며 구성하였고 트러블 슈팅 과정을 추가하였다.
Image Checkout
Docker Hub에서 공식 이미지를 체크아웃 한다.
https://hub.docker.com/_/oracle-database-enterprise-edition?tab=resources
Proceed to Checkout 버튼을 누르면 간단한 개인정보 입력 후 docker image로 받을 수 있다.
Docker에 구성하기
- image pull
sudo docker pull store/oracle/database-enterprise:12.2.0.1-slim
- 이미지 확인 docker images
3. 이미지를 컨테이너로 구동docker run -dit —name local\_db -p 1521:1521 store/oracle/database-enterprise:12.2.0.1-slim
4. Docker 컨테이너 구동 확인docker logs -f local\_db
5. 컨테이너 로그 확인docker logs -f local\_db
로그에서 Done! The database is ready for use. 확인하기
6. Oracle 접속 계정 생성
docker exec -it local\_db bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc\_db1@ORCLCDB as sysdba"
docker exec
도커 외부에서 컨테이너로 명령어를 전달하여 컨테이너에서 실행되도록 한다.
컨테이너의 쉘을 직접 열지 않고 명령어를 전달할 수 있다.
7. Oracle 12c에서 사용자 생성시 기존과 같은 방법으로 추가하기 위한 설정
SQL> alter session set "\_ORACLE\_SCRIPT"=true;
8. 사용자 생성(gom / 1234)
SQL > create user gom identified by 1234;
9. 권한 할당
SQL > grant connect, resource, dba to gom;
위 단계까지 진행하면 기본 설치 및 설정은 완료한 것이다.
하지만 한글 인코딩, Timezone 문제를 해결해야 외부에서 sql로 접속할 수 있다. 추가설정을 진행한다.
추가 설정(옵션이지만 필수)
- 오라클 설정 파일 확인
docker exec -it local\_db bash -c "cat /home/oracle/.bashrc"
- Timezone 변경
docker exec -it local\_db bash -c "echo \\"export TZ='Asia/Seoul'\\" >> /home/oracle/.bashrc"
- sqlplus 접속
docker exec -it local\_db bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc\_db1@ORCLCDB as sysdba"
- language utf-8 적용
SQL >update sys.props$ set value$='KOREAN\_KOREA.UTF8' where name='NLS\_LANGUAGE';
- charset utf-8 적용
SQL >update sys.props$ set value$='UTF8' where name='NLS\_CHARACTERSET';
- nchar charset utf-8 적용
SQL >update sys.props$ set value$='UTF8' where name='NLS\_NCHAR\_CHARACTERSET';
- 커밋
SQL >commit;
- 재부팅
SQL >shutdown immediate;
SQL >conn / as sysdba
SQL >startup;
연결 확인
Host(OSX)에서 VM에서 동작중인 Docker의 Oracle 12c DB에 연결한다.
Host(OSX)1521/tcp -> VM(Ubuntu)1521/tcp -> Docker(Oralce12c)1521/tcp
DB연결 도구로는 Oracle SQL Developer를 사용하였다.
Review
도커로 컨테이너를 실행하고 SQL 계정을 설정하고, 인코딩 설정을 하는 모든 일련의 과정을 한번에 가능하도록 DockerFile을 준비할 수도 있다.
하지만 도커의 실행원리를 익히고 명령어를 익히는 데에는 직접 세팅해 보는 것이 가장 좋은 방법이다.
이제 웹서버를 도커로 구성하고 DB와 연결해볼 예정이다.
----2021.04.13. 수정
Dockerfile과 Dockercompose로 구성한 포스트를 추가하였다.
'Security > Cloud Computing' 카테고리의 다른 글
[AWS] Serverless Goat 풀이 - 클라우드 모의해킹 (0) | 2021.06.01 |
---|---|
[MINIO 설치] 라즈베리파이에 AWS S3 환경 구성하기(Object Storage) (0) | 2021.05.26 |
[AWS] 고객 센터 문의하기 (0) | 2021.04.19 |
[Docker] Tomcat Oracle 12c 구성하기 2 (0) | 2021.04.13 |
[Docker] Docker 개요 및 설치 방법 (0) | 2021.03.14 |