在docker上安装oracle数据库
时间: 2025-05-31 13:47:15 AIGC 浏览: 66
### 在 Docker 上安装和配置 Oracle 数据库
#### 准备工作
在开始之前,确保已经安装了 Docker 并且能够正常运行容器。可以通过执行 `docker version` 命令来验证环境是否准备妥当。
#### 方法一:使用 wnameless/oracle-xe-11g 镜像
一种常见的方法是通过 wnameless 提供的官方镜像快速启动 Oracle XE 11g 实例。以下是具体操作:
1. **拉取镜像**
执行以下命令下载镜像:
```bash
docker pull wnameless/oracle-xe-11g
```
2. **创建并运行容器**
下面的命令会基于该镜像创建一个新的容器,并将其端口映射到主机上的 1521 端口:
```bash
docker run -d --name oracle-container -p 1521:1521 -e ORACLE_PASSWORD=your_password wnameless/oracle-xe-11g
```
这里 `-e ORACLE_PASSWORD=your_password` 参数用于设置数据库管理员密码[^2]。
3. **访问数据库**
启动完成后,可以连接至数据库实例。默认情况下,服务监听地址为 `localhost:1521`,SID 名称为 `XE`。
---
#### 方法二:使用阿里云提供的镜像
另一种方式是从阿里云仓库获取预构建好的 Oracle 11g 镜像。此方法适合需要更稳定支持的企业场景。
1. **拉取镜像**
使用如下命令从阿里云镜像仓库中提取所需资源:
```bash
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
```
2. **创建数据卷与运行容器**
推荐将持久化存储绑定到宿主机路径以便长期保存数据文件。例如:
```bash
docker run -d --privileged -p 1521:1521 --name oracle11g \
--restart=always -v /home/oracle:/data/oracle \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
```
此处 `/home/oracle` 是宿主机中的目录位置;而 `/data/oracle` 则作为容器内部的数据挂载点[^3]。
3. **初始化完成后的测试**
登录到新建立的服务当中进行初步校验:
```sql
sqlplus system@//<host>:1521/XE as sysdba
```
替换 `<host>` 成实际 IP 或者域名即可实现远程接入功能[^4]。
---
#### 注意事项
- 如果遇到权限不足或者磁盘空间耗尽等问题,则需调整 SELinux 设置或将相关选项加入启动参数之中。
- 对于生产用途而言,建议采用更高版本 (如 Oracle Database Enterprise Edition),因为它们具备更多高级特性以及更好的性能表现。
```python
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='XE')
conn = cx_Oracle.connect(user='system', password='your_password', dsn=dsn_tns)
cursor = conn.cursor()
cursor.execute("SELECT * FROM dual")
print(cursor.fetchone())
```
以上 Python 示例展示了如何利用 `cx_Oracle` 库连接已部署成功的 Oracle DB 实例[^1]。
阅读全文
相关推荐

















