Docker安装Oracle 19c企业版详细教程:从拉取镜像到DBeaver连接数据库

本文提供使用Docker安装Oracle 19c企业版的完整步骤,包括Docker环境准备、拉取阿里云镜像、创建容器、解决内存不足错误、获取数据库连接信息,以及使用DBeaver可视化工具连接和操作Oracle数据库的详细指南。

本文将介绍如何使用 Docker 安装 Oracle 19c(稳定企业版)。

安装 Docker

如果你没有安装 Docker,请执行下面语句安装 Docker。

Ubuntu / Debian 复制这条:

curl -fsSL https://get.docker.com | bash

CentOS 复制这条:

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
a63d9cd1695b6e9c30081025b7e183c10819e2fad44e1652b9302d468b1970be

3、容器创建成功后,使用 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 数据库进行操作了。

学习从来无捷径,循序渐进登高峰。 —— 高永祚
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号