Docker Oracle DataBase
系统为 CentOS7,安装 Docker:https://www.cnblogs.com/jhxxb/p/11410816.html
一、下载构建脚本
wget https://codeload.github.com/oracle/docker-images/zip/refs/heads/main -O docker-images-main.zip sudo yum install -y unzip unzip docker-images-main.zip
二、下载构建所需的安装包
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
11g:
- https://archive.org/download/oracle-xe-11.2
- https://dl.javahosting.ir/database
- https://dw.hanbit.co.kr/Oracle/11gXE
cd docker-images-main/OracleDatabase/SingleInstance/dockerfiles/19.3.0/ # https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html wget https://download.oracle.com/otn/linux/oracle19c/190000/LINUX.X64_193000_db_home.zip?AuthParam=1625820213_e8029c8bed6986229cbc39f533ce6977 -O LINUX.X64_193000_db_home.zip
三、构建
cd docker-images-main/OracleDatabase/SingleInstance/dockerfiles/ ./buildContainerImage.sh -e -v 19.3.0 -o '--build-arg SLIMMING=false'
选项说明
[oracle@localhost dockerfiles]$ ./buildContainerImage.sh -h Usage: buildContainerImage.sh -v [version] -t [image_name:tag] [-e | -s | -x] [-i] [-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 -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' -i: ignores the MD5 checksums -o: passes on container build option * select one edition only: -e, -s, or -x LICENSE UPL 1.0 Copyright (c) 2014,2021 Oracle and/or its affiliates.
四、运行
docker run --restart=always --name oracle-19c \ -p 1521:1521 -p 5500:5500 \ -e ORACLE_SID=ORCLCDB \ -e ORACLE_PDB=ORCLPDB1 \ -e ORACLE_PWD=root \ oracle/database:19.3.0-ee # 查看日志 docker logs -f oracle-19c
选项说明
docker run --name <container name> \ -p <host port>:1521 -p <host port>:5500 \ -e ORACLE_SID=<your SID> \ -e ORACLE_PDB=<your PDB name> \ -e ORACLE_PWD=<your database passwords> \ -e INIT_SGA_SIZE=<your database SGA memory in MB> \ -e INIT_PGA_SIZE=<your database PGA memory in MB> \ -e ORACLE_EDITION=<your database edition> \ -e ORACLE_CHARACTERSET=<your character set> \ -e ENABLE_ARCHIVELOG=true \ -v [<host mount point>]:/opt/oracle/oradata \ oracle/database:19.3.0-ee Parameters: --name: The name of the container (default: auto generated). -p: The port mapping of the host port to the container port. Two ports are exposed: 1521 (Oracle Listener), 5500 (OEM Express). -e ORACLE_SID: The Oracle Database SID that should be used (default: ORCLCDB). -e ORACLE_PDB: The Oracle Database PDB name that should be used (default: ORCLPDB1). -e ORACLE_PWD: The Oracle Database SYS, SYSTEM and PDB_ADMIN password (default: auto generated). -e INIT_SGA_SIZE: The total memory in MB that should be used for all SGA components (optional). Supported 19.3 onwards. -e INIT_PGA_SIZE: The target aggregate PGA memory in MB that should be used for all server processes attached to the instance (optional). Supported 19.3 onwards. -e ORACLE_EDITION: The Oracle Database Edition (enterprise/standard). Supported 19.3 onwards. -e ORACLE_CHARACTERSET: The character set to use when creating the database (default: AL32UTF8). -e ENABLE_ARCHIVELOG: To enable archive log mode when creating the database (default: false). Supported 19.3 onwards. -v /opt/oracle/oradata The data volume to use for the database. Has to be writable by the Unix "oracle" (uid: 54321) user inside the container! If omitted the database will not be persisted over container recreation. -v /opt/oracle/scripts/startup | /docker-entrypoint-initdb.d/startup Optional: A volume with custom scripts to be run after database startup. For further details see the "Running scripts after setup and on startup" section below. -v /opt/oracle/scripts/setup | /docker-entrypoint-initdb.d/setup Optional: A volume with custom scripts to be run after database setup. For further details see the "Running scripts after setup and on startup" section below.
五、连接
docker exec -it oracle-19c bash sqlplus / as sysdba sqlplus sys/<your password>@//localhost:1521/<your SID> as sysdba sqlplus system/<your password>@//localhost:1521/<your SID> sqlplus pdbadmin/<your password>@//localhost:1521/<Your PDB name>
Oracle Enterprise Manager Express:https://localhost:5500/em/,登录时 Container Name 留空,用户名为 system 或 sys
密码
若未指定 ORACLE_PWD 参数,可在输出日志中搜索 ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: 找到密码
或者直接修改密码
docker exec <container name> ./setPassword.sh <your password>
https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance
https://container-registry.oracle.com