Oracle 데이터베이스 Docker 이미지 생성
요구 사항
git
Docker
Oracle binaries(선택 사항)
왜 Oracle 전용 게시물입니까?
DockerHub에서 PostgreSQL 또는 MariaDB와 같은 대부분의 일반 데이터베이스에 대한 이미지를 찾을 수 있습니다. 그러나 Oracle에 관해서는 모든 좋은 일이 끝납니다.
(내 생각에) 저작권상의 이유로 오라클은 Docker 인스턴스에서 가져와서 실행할 수 있는 이미지를 제공하지 않습니다.
그런데 이상하게도 그들은 대안을 제시했다.
Docker에서 Oracle 데이터베이스 실행
Oracle은 Oracle Database를 비롯한 많은 제품 오퍼링을 설정하는 데 도움이 되는 Docker 빌드 스크립트 제품군을 제공했습니다. GitHub repository에서 이러한 스크립트를 찾을 수 있습니다.
사전 다운로드된 바이너리가 필요하지 않은 유일한 버전인 18.4.0-xe 버전을 배포합니다. 다른 버전의 경우 아래 설명된 대로 필요한 바이너리를 다운로드해야 합니다.
참고: (선택 사항)으로 표시된 모든 단계는 버전 18.4.0-xe에서는 건너뛸 수 있지만 다른 버전에서는 필수입니다.
(선택 사항) Oracle 바이너리 다운로드
Oracle Download page으로 이동합니다. 예를 들어
oracle-database-xe-18c-1.0-1.x86_64.rpm
필요한 db 버전을 다운로드합니다.Oracle Github 프로젝트 복제
$ git clone https://github.com/oracle/docker-images.git
(선택 사항) 데이터베이스 바이너리를 프로젝트 폴더에 복사합니다.
$ cp /path/to/file/oracle-database-xe-18c-1.0-1.x86_64.rpm /path/to/project/docker-images/OracleDatabase/SingleInstance/dockerfiles/18.4.0
인스톨러를 실행합니다. 옵션 설명은 명령 헬퍼를 참조하십시오.
$ cd docker-images/OracleDatabase/SingleInstance/dockerfiles
$ ./buildContainerImage.sh -v 18.4.0 -x
경고: 스크립트가 완료되기까지 최대 30분이 소요될 수 있습니다.
이미지 확인
도커 이미지를 나열합니다.
$ docker images
oracle/database 18.4.0-xe
로 태그가 지정된 이미지가 있는지 확인합니다.이미지 크기에 주의하십시오. 때때로 설치가 완전히 완료되지 않고 문제를 보고하지 않고 스크립트가 종료됩니다. 이미지 크기는 약 5.89GB여야 합니다.
컨테이너 실행
$ docker run --name oracle \
-d \
-p 51521:1521 \
-p 55500:5500 \
-e ORACLE_PWD=mysecurepassword \
-e ORACLE_CHARACTERSET=AL32UTF8 \
oracle/database:18.4.0-xe
어디에
--name
: 컨테이너 이름을 지정합니다-d
: 분리 모드에서 컨테이너 실행-p 51521:1521
및 -p 55500:5500
는 호스트를 컨테이너 포트에 매핑합니다. -e ORACLE_PWD=mysecurepassword
및 -e ORACLE_CHARACTERSET=AL32UTF8
는 환경 변수를 설정합니다. 여기서 ORACLE_PWD
는 관리 암호를 설정하고 ORACLE_CHARACTERSET
는 데이터베이스의 문자 집합을 설정합니다. docker run
명령을 통해 STATUS
필드를 보고 컨테이너 상태를 확인할 수 있습니다.$ d ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7776a6dd664 oracle/database:18.4.0-xe "/bin/sh -c 'exec $O…" About a minute ago Up About a minute (health: starting) 0.0.0.0:51521->1521/tcp, :::51521->1521/tcp, 0.0.0.0:55500->5500/tcp, :::55500->5500/tcp oracle
예제에서 컨테이너는 여전히 시작 중입니다(
health: starting
). 컨테이너가 시작되면 상태가 healty
에서 변경됩니다.컨테이너 상태를 확인하는 또 다른 방법은 컨테이너 로그를 보는 것입니다.
$ docker logs oracle
## Omitted for brevity
*******************
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
31% complete
34% complete
38% complete
41% complete
43% complete
Completing Database Creation
47% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/XE.
Database Information:
Global Database Name:XE
System Identifier(SID):XE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.
Connect to Oracle Database using one of the connect strings:
Pluggable database: 2540b6bf28f7/XEPDB1
Multitenant container database: 2540b6bf28f7
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
The Oracle base remains unchanged with value /opt/oracle
#########################
DATABASE IS READY TO USE!
#########################
컨테이너를 시작할 때마다 데이터베이스 인스턴스를 설치해야 하므로 컨테이너가 준비되기까지 몇 분 정도 걸립니다.
데이터베이스에 연결
원하는 클라이언트를 사용하여 데이터베이스에 연결할 수 있습니다. 내가 사용한 예에서 dbeaver :
또는 OS 사용자
oracle
를 사용하여 컨테이너 내에서 bash 세션을 만듭니다.$ docker exec -it --user=oracle oracle bash
Oracle Database에 필요한 Linux 환경 변수를 설정합니다.
bash-4.2# . oraenv
ORACLE_SID = [XE] ?
The Oracle base remains unchanged with value /opt/oracle
그런 다음 Oracle 데이터베이스 시스템에서와 마찬가지로 SQL*Plus에 액세스합니다.
bash-4.2# sqlplus sys@XEPDB1 as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Mon Aug 23 19:49:33 2021
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL>
다음에 온다
현재 데이터베이스는 작동 중이지만 컨테이너를 실행하려면 많은 시간이 필요합니다. 다음 게시물에서는 다양한 방법을 사용하여 시작 시간을 개선하는 방법을 보여 드리겠습니다.
출처
https://github.com/oracle/docker-images
https://blogs.oracle.com/oraclemagazine/deliver-oracle-database-18c-express-edition-in-containers
Reference
이 문제에 관하여(Oracle 데이터베이스 Docker 이미지 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zankyr/create-an-oracle-database-docker-image-1e2n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)