本文将介绍如何使用 Docker 安装 Oracle 19c(稳定企业版)。
如果你没有安装 Docker,请执行下面语句安装 Docker。
Ubuntu / Debian 复制这条:
curl -fsSL https://get.docker.com | bashCentOS 复制这条:
curl -fsSL https://get.docker.com | bash参考:https://www.hxstrive.com/subject/docker.htm
1、使用 docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c 命令拉取 Oracle19c 镜像,如下:
root@localhost:~# docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
19c: Pulling from zhuyijun/oracle
bce8f778fef0: Pull complete
3fc3fd32c0bc: Pull complete
02948dd6d654: Pull complete
67f2dfeb2f1b: Pull complete
2e42d8039fd9: Pull complete
b94f01bb60c6: Pull complete
Digest: sha256:3898a9394720f30ce7f0b83ef2d172f4cd11b958282e0505f83cf2b0e5eaf7d4
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c注意:Oracle19c镜像比较大,下载需要好很长的时间。
2、使用 docker run -d --name oracle19c -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c 命令创建容器,例如:
root@localhost:~# docker run -d --name oracle19c -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
a63d9cd1695b6e9c30081025b7e183c10819e2fad44e1652b9302d468b1970be3、容器创建成功后,使用 docker logs -f oracle19c 命令查看容器创建日志信息,这个过程需要耗时20~30分钟,例如:
root@localhost:~# docker logs -f oracle19c
cat: /sys/fs/cgroup/memory/memory.limit_in_bytes: No such file or directory
cat: /sys/fs/cgroup/memory/memory.limit_in_bytes: No such file or directory
/opt/oracle/runOracle.sh: line 103: [: -lt: unary operator expected
ORACLE EDITION: ENTERPRISE
ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: BesTkEss0Ew=1
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 17-JUN-2026 02:12:27
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/a63d9cd1695b/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 17-JUN-2026 02:12:27
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/a63d9cd1695b/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
The listener supports no services
The command completed successfully
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/ORCLCDB.
Database Information:
Global Database Name:ORCLCDB
System Identifier(SID):ORCLCDB
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jun 17 02:29:05 2026
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>
System altered.
SQL>
System altered.
SQL>
Pluggable database altered.
SQL>
PL/SQL procedure successfully completed.
SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
The Oracle base remains unchanged with value /opt/oracle
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
ORCLPDB1(3):ALTER DATABASE DEFAULT TABLESPACE "USERS"
ORCLPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
2026-06-17T02:29:05.048444+00:00
ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCLCDB/control01.ctl' SCOPE=SPFILE;
2026-06-17T02:29:05.057152+00:00
ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
Completed: ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
XDB initialized.注意,如果在创建过程中出现如下错误:
library initialization failed - unable to allocate file descriptor table - out of memory dbca ... Aborted (core dumped)提示句柄不足或者内存不足(如果是虚拟机,可以扩大虚拟机的内存),然后使用如下命令重新创建:
# 1.先删除创建失败的旧容器
docker rm -f oracle19c
# 2.执行 docker run 命令重新创建
docker run -d \
--name oracle19c \
-p 1521:1521 \
-p 5500:5500 \
--memory=4g \
--memory-swap=6g \
--ulimit nofile=65535:65535 \
--ulimit nproc=20480:20480 \
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c创建成功后,可以从输出日志中获取用户名、实例、密码等信息,如下:
容器端口映射:宿主机 1521 → 容器 1521
CDB(根库)
SID:ORCLCDB
服务名:ORCLCDB
PDB(可插拔业务库,日常开发用这个)
PDB 名称:ORCLPDB1
PDB 服务名:ORCLPDB1
账号:SYS / SYSTEM / PDBADMIN
统一密码:BesTkEss0Ew=1
字符集:UTF8
注意,账号和密码信息来自如下日志:
ORACLE EDITION: ENTERPRISE # 数据库版本
ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: BesTkEss0Ew=1 # 账号和密码数据库服务信息来自如下日志:
Database Information:
Global Database Name:ORCLCDB # 数据库服务名
System Identifier(SID):ORCLCDB # 数据库的 SID区分 ORCLCDB 和 ORCLPDB1 两个库:
ORCLCDB:CDB 根容器,一般 DBA 管理用,不建议日常建表开发
ORCLPDB1:业务 PDB 库,写表、开发、学习全部连这个
下面介绍如何使用 DBeaver 可视化软件连接到数据库:
(1)打开 Oracle 类型的“连接到数据库”设置页面,在页面中输入主机地址、数据库、账号和密码,如下图:

(2)点击“测试连接”按钮,此时 DBeaver 会自动判断是否存在数据库驱动,不存在将自动下载数据库 JDBC 驱动,然后测试连接,连接成功如下图:

(3)点击“完成”进入数据库,如下图:

接下来我们就可以通过 DBeaver 对 Oracle19c 数据库进行操作了。