专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

第三方镜像 docker安装Oracle 11(docker装载镜像)

ins518 2024-11-16 21:40:07 技术文章 8 ℃ 0 评论

Oracle 官方不支持在 Docker 中安装 Oracle Database,但是可以通过使用第三方的镜像和脚本来实现 Oracle 数据库的 Docker 化。下面是一个简单的例子,介绍如何使用 docker-compose 安装 Oracle 11g。

  1. 首先,在本地创建一个文件夹,用于存放 docker-compose.yml 文件和其他相关文件,例如:
mkdir oracle-docker
cd oracle-docker
  1. 在该文件夹中创建一个名为 docker-compose.yml 的文件,并将以下内容复制到文件中:
version: '3.7'
services:
  oracle_11g:
    image: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    container_name: oracle_11g
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./data/oracle:/data/oracle
      - ./data/profile:/etc/profile
    ports:
      - 1521:1521
    privileged: true
    user: root
    restart: always
    command: /bin/bash -c "ln -s $ORACLE_HOME/bin/sqlplus /usr/bin"
    deploy:
      resources:
        limits:
          memory: 2G
        reservations:
          memory: 500M
    networks:
      application:
        aliases:
          -  net-oracle_11g


networks:
  application:
   name: net
   driver: bridge

/data/profile 为一下内容

vi /etc/profile

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2

export ORACLE_SID=helowin

export PATH=$ORACLE_HOME/bin:$PATH

以上配置使用了第三方镜像 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g,该镜像基于 Oracle Database 11g 构建而成。

  1. 执行以下命令启动容器:
 docker-compose up -d

该命令会下载并启动指定的镜像,并将容器暴露出来的 1521 端口映射到本地的 1521 端口上。

  1. 等待容器启动完成后,可以使用任意的 Oracle 客户端连接到数据库。

docker exec -it oracle_11g bash

  1. 设置软连

sqlplus /nolog
如果没有 进行一下操作

然后在执行 source /etc/profile 使配置生效
最后方便使用创建软连接 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

  1. 切换oracle用户

su - oracle


  1. 登录sqlplus并修改sys、system用户密码并且创建用户

sqlplus /nolog --登录

startup; --启动数据库,注意第一次进入才执行

conn /as sysdba --连接数据库

alter user system identified by system;–修改system用户账号密码;

alter user sys identified by system;–修改sys用户账号密码;

create user test identified by test; – 创建内部管理员账号密码;

grant connect,resource,dba to test; --将dba权限授权给内部管理员账号和密码;

alter profile default limit password_life_time unlimited; --修改密码规则策略为密码永不过期;

alter system set processes=1000 scope=spfile; --修改数据库最大连接数据;


修改以上信息后,需要重新启动数据库


conn /as sysdba
shutdown immediate; --关闭数据库
startup; --启动数据库
exit:退出软链接


  1. navicat无法登陆问题

alter system set local_listener=‘(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))’; – 然后重启,如果执行不成也退出

然后退出SQL页面再执行

lsnrctl start #开启监听

dbstart # 启动用户实例


以上就是使用 docker-compose 安装 Oracle 11g 的方法。需要注意的是,该方法使用的是第三方镜像,因此安全性和稳定性需要自行评估。同时,Oracle 官方不支持在 Docker 中运行 Oracle 数据库,因此使用该方法可能会有一些限制和风险。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表