#48 Ubuntu x86_64 Oracle 19c 도커 이미지 만들기
star
Tasks
1. 다운로드#
git clone https://github.com/oracle/docker-images.git
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
"Oracle Database 19c for Linux x86-64"
scott@host:[/home/scott/tmp/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0]
$ mv ~/Downlaods/LINUX.X64_193000_db_home.zip .
2. 빌드#
scott@host:[/home/scott/tmp/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0]
$ ls -al
합계 2988116
drwxrwxr-x 2 scott scott 4096 1월 6 10:51 .
drwxrwxr-x 10 scott scott 4096 1월 6 10:49 ..
-rw-rw-r-- 1 scott scott 63 1월 6 10:49 Checksum.ee
-rw-rw-r-- 1 scott scott 65 1월 6 10:49 Checksum.ee.arm64
-rw-rw-r-- 1 scott scott 63 1월 6 10:49 Checksum.se2
-rw-rw-r-- 1 scott scott 5025 1월 6 10:49 Dockerfile
-rw-rw-r-- 1 scott scott 3059705302 1월 6 10:50 LINUX.X64_193000_db_home.zip
-rwxrwxr-x 1 scott scott 2474 1월 6 10:49 checkDBStatus.sh
-rwxrwxr-x 1 scott scott 904 1월 6 10:49 checkSpace.sh
-rw-rw-r-- 1 scott scott 7453 1월 6 10:49 configTcps.sh
-rwxrwxr-x 1 scott scott 9047 1월 6 10:49 createDB.sh
-rw-rw-r-- 1 scott scott 1567 1월 6 10:49 createObserver.sh
-rw-rw-r-- 1 scott scott 6878 1월 6 10:49 db_inst.rsp
-rw-rw-r-- 1 scott scott 9204 1월 6 10:49 dbca.rsp.tmpl
-rwxrwxr-x 1 scott scott 2712 1월 6 10:49 installDBBinaries.sh
-rw-rw-r-- 1 scott scott 2013 1월 6 10:49 relinkOracleBinary.sh
-rwxrwxr-x 1 scott scott 11054 1월 6 10:49 runOracle.sh
-rwxrwxr-x 1 scott scott 1021 1월 6 10:49 runUserScripts.sh
-rwxrwxr-x 1 scott scott 1141 1월 6 10:49 setPassword.sh
-rwxrwxr-x 1 scott scott 1066 1월 6 10:49 setupLinuxEnv.sh
-rwxrwxr-x 1 scott scott 679 1월 6 10:49 startDB.sh
scott@host:[/home/scott/tmp/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0]
$ ./buildContainerImage.sh -h
-bash: ./buildContainerImage.sh: 그런 파일이나 디렉터리가 없습니다
scott@host:[/home/scott/tmp/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0]
$ cd ..
scott@host:[/home/scott/tmp/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles]
$ ls
11.2.0.2 12.1.0.2 12.2.0.1 18.3.0 18.4.0 19.3.0 21.3.0 23.5.0 buildContainerImage.sh
scott@host:[/home/scott/tmp/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles]
$ ./buildContainerImage.sh -h
Usage: buildContainerImage.sh -v [version] -t [image_name:tag] [-e | -s | -x | -f] [-i] [-p] [-b] [-o] [container build option]
Builds a container image for Oracle Database.
Parameters:
-v: version to build
Choose one of: 11.2.0.2 12.1.0.2 12.2.0.1 18.3.0 18.4.0 19.3.0 21.3.0 23.5.0
-t: image_name:tag for the generated docker image
-e: creates image based on 'Enterprise Edition'
-s: creates image based on 'Standard Edition 2'
-x: creates image based on 'Express Edition'
-f: creates images based on Database 'Free'
-i: ignores the MD5 checksums
-p: creates and extends image using the patching extension
-b: build base stage only (Used by extensions)
-o: passes on container build option
* select one edition only: -e, -s, -x, or -f
LICENSE UPL 1.0
Copyright (c) 2014,2024 Oracle and/or its affiliates.
scott@host:[/home/scott/tmp/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles]
$ ./buildContainerImage.sh -v 19.3.0 -e
Checking Docker version.
Dockerfile
Checking if required packages are present and valid...
LINUX.X64_193000_db_home.zip: 성공
==========================
Container runtime info:
Client: Docker Engine - Community
Version: 27.4.1
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.19.3
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.32.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 3
Running: 3
Paused: 0
Stopped: 0
Images: 6
Server Version: 27.4.1
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 88bf19b2105c8b17560993bee28a01ddc2f97182
runc version: v1.2.2-0-g7cb3632
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.8.0-51-generic
Operating System: Ubuntu 24.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 32
Total Memory: 62.72GiB
Name: msacorebank-ap
ID: 8531bf6a-b504-4500-829d-bb2d18a5555d
Docker Root Dir: /simple/docker
Debug Mode: false
Experimental: false
Insecure Registries:
pro.newstong.com:18501
repo.newstong.com:1500
127.0.0.0/8
Live Restore Enabled: false
==========================
Building image 'oracle/database:19.3.0-ee' ...
[+] Building 205.9s (15/15) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 5.06kB 0.0s
=> WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 25) 0.0s
=> [internal] load metadata for docker.io/library/oraclelinux:7-slim 2.3s
=> [internal] load .dockerignore 0.1s
=> => transferring context: 2B 0.0s
=> [base 1/4] FROM docker.io/library/oraclelinux:7-slim@sha256:1add6ed8602ea996528110fe75f4b03c2ca7ffdbe9497148dbb46c3cc9ce6acd 4.0s
=> => resolve docker.io/library/oraclelinux:7-slim@sha256:1add6ed8602ea996528110fe75f4b03c2ca7ffdbe9497148dbb46c3cc9ce6acd 0.0s
=> => sha256:1add6ed8602ea996528110fe75f4b03c2ca7ffdbe9497148dbb46c3cc9ce6acd 2.38kB / 2.38kB 0.0s
=> => sha256:645371a66c08ed18b7aacf217c964f0db70c26ac87f3d8816d7ae24160f178e4 1.03kB / 1.03kB 0.0s
=> => sha256:05211a081d592eb56daf16b0651eb55b233a65466492b28345804309b45caf21 585B / 585B 0.0s
=> => sha256:38299ae2e819f6ec4befee45312f809ca241167aa554dd79e0a4baf505b88d21 50.49MB / 50.49MB 0.9s
=> => extracting sha256:38299ae2e819f6ec4befee45312f809ca241167aa554dd79e0a4baf505b88d21 2.5s
=> [internal] load build context 11.9s
=> => transferring context: 3.06GB 11.8s
=> [base 2/4] COPY setupLinuxEnv.sh checkSpace.sh /opt/install/ 6.3s
=> [base 3/4] COPY runOracle.sh startDB.sh createDB.sh createObserver.sh dbca.rsp.tmpl setPassword.sh
checkDBStatus.sh runUserScripts.sh relinkOracleBinary.sh configTcps.sh /opt/oracle/ 0.2s
=> [base 4/4] RUN chmod ug+x /opt/install/*.sh && sync && /opt/install/checkSpace.sh &&
/opt/install/setupLinuxEnv.sh && rm -rf /opt/install 40.2s
=> [builder 1/2] COPY --chown=oracle:dba LINUX.X64_193000_db_home.zip db_inst.rsp installDBBinaries.sh /opt/install/ 8.5s
=> [builder 2/2] RUN chmod ug+x "/opt/install"/*.sh && sync && "/opt/install"/"installDBBinaries.sh" ee 95.9s
=> [stage-2 1/4] COPY --chown=oracle:dba --from=builder /opt/oracle /opt/oracle 19.3s
=> [stage-2 2/4] RUN "/opt/oracle"/oraInventory/orainstRoot.sh && "/opt/oracle/product/19c/dbhome_1"/root.sh 0.5s
=> [stage-2 3/4] WORKDIR /home/oracle 0.1s
=> [stage-2 4/4] RUN echo 'ORACLE_SID=${ORACLE_SID:-ORCLCDB}; export ORACLE_SID=${ORACLE_SID^^}' > .bashrc 0.3s
=> exporting to image 14.9s
=> => exporting layers 14.8s
=> => writing image sha256:983facda5c95f836087b582fa590262e998398e6f4d9048b4dd26cdc908c0f06 0.0s
=> => naming to docker.io/oracle/database:19.3.0-ee 0.0s
Oracle Database container image for 'ee' version 19.3.0 is ready to be extended:
--> oracle/database:19.3.0-ee
Build completed in 206 seconds.
scott@host:[/home/scott/tmp/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles]
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
oracle/database 19.3.0-ee 983facda5c95 23 seconds ago 6.54GB
ubuntu 24.10 e40b6e31bd8c 6 weeks ago 80.1MB
scott@host:[/home/scott/tmp/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles]
$
3. 컨테이너 생성#
sudo mkdir -p /data/app/docker/oracle19c/oracledata
sudo chmod 777 /data/app/docker/oracle19c/oracledata
docker run -d -it --name oracle19c \
-p 32022:22 \
-p 32769:1521 -p 32550:5500 \
-e ORACLE_SID=OracleNUX \
-e ORACLE_PDB=OraclePDB \
-e ORACLE_PWD=Tiger84 \
-e ORACLE_CHARACTERSET=UTF8 \
-v /data/app/docker/oracle19c/oracledata/:/opt/oracle/oradata \
oracle/database:19.3.0-ee
4. 작업후 추가 작업#
4-1. vim설치 및 localtime 설정#
docker exec -it --user root oracle19c bash
yum install vim
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
4-2. 오라클 ChatracterSet 변경: KOREAN_KOREA.UTF8#
docker exec -i -t oracle19c bash
sqlplus /nolog
conn / as sysdba
alter database set time_zone='+09:00';
select * from nls_database_parameters where parameter like '%CHARACTERSET%';
select value$ from sys.props$ where name='NLS_CHARACTERSET';
select value$ from sys.props$ where name='NLS_NCHAR_CHARACTERSET';
update sys.props$ set value$='UTF8' where name='NLS_CHARACTERSET';
update sys.props$ set value$='UTF8' where name='NLS_NCHAR_CHARACTERSET';
update sys.props$ set value$='KOREAN_KOREA.UTF8' where name='NLS_LANGUAGE';
commit;
exit;
4-3. ".bashrc" 수정#
vim .bashrc
export PS1='
\[\033[01;32m\]\u@docker-oracle:\[\033[00m\][\[\033[01;34m\]$PWD\[\033[00m\]]
$ ';
echo
echo .██████╗.██████╗..█████╗..██████╗██╗.....███████╗
echo ██╔═══██╗██╔══██╗██╔══██╗██╔════╝██║.....██╔════╝
echo ██║...██║██████╔╝███████║██║.....██║.....█████╗..
echo ██║...██║██╔══██╗██╔══██║██║.....██║.....██╔══╝..
echo ╚██████╔╝██║..██║██║..██║╚██████╗███████╗███████╗
echo .╚═════╝.╚═╝..╚═╝╚═╝..╚═╝.╚═════╝╚══════╝╚══════╝
echo
export LANG=ko_KR.UTF-8
export LC_ALL=ko_KR.UTF-8
4-4. 로케일 작업#
docker exec -it --user root oracle19c bash
# mkdir -p /usr/share/i18n/charmaps
# mkdir -p /usr/share/i18n/locales
# cp /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.backup
yum install wget
wget https://yum.oracle.com/public-yum-ol7.repo
yum-config-manager --enable ol7_latest
yum clean all
yum makecache
# locale 관련 패키지 설치
yum reinstall -y glibc-common
yum install -y glibc-locale-source
# 기본 로케일 데이터 복사
cp /usr/share/locale/ko/LC_MESSAGES/* /usr/lib/locale/
# 현재 사용 가능한 로케일 확인
locale -a
# 로케일 생성
localedef -i ko_KR -c -f UTF-8 ko_KR.UTF-8
exit
4-5. SQL*Plus#
docker exec -i -t oracle19c bash
sqlplus /nolog
conn / as sysdba
Comment 0
-
Added
KKoZZi added
oraclelabel 01-06 -
KKoZZi added
dockerlabel 01-06 -
KKoZZi added
ubuntulabel 01-06
Add a comment
Comment 0