docker 安装oracle

本文介绍了如何在Docker环境下拉取并启动Oracle11g镜像,进入容器进行环境变量配置,修改数据库用户密码,以及如何变更和验证Oracle服务名。同时,文中涉及到使用`docker`命令操作容器,以及对数据库权限的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.查找oracle的镜像

sudo docker search docker-oracle-xe-11g


2.拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g


3.启动oracle

docker run --name oracle11 -p 1521:1521 --privileged=true --restart=always   -e TZ=Asia/Shanghai  -itd registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

这时容器已经在后台运行了。

4.进入容器shell
我们需要先获取后台运行的容器的进程id

docker ps

然后我们需要链接到容器的shell

第一种方式:sudo docker exec -it  容器id /bin/bash
第二种方式:docker exec -it -u 0 oracle11(容器名字) bash


-it后的字符串就是刚刚获取到的id。
然后我们就成功进入容器的shell里了。

5.配置oracle环境变量

vi /etc/profile
        export ORACLE_BASE=/home/oracle/app/oracle
        export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_2
        export ORACLE_SID=helowin
        export PATH=$PATH:$ORACLE_HOME/bin
    source /etc/profile
   su oracle    #切换到oracle用户
    #登录数据库,修改sys、system用户密码
        sqlplus /nolog       #登录oracle数据库
        conn /as sysdba      #切换管理用户
        alter user system identified by 123456;        #修改system用户账号密码;
        alter user sys identified by 123456;        #修改sys用户账号密码;
        create user wwq identified by 123456;         #创建内部管理员账号密码;
        grant connect,resource,dba to wwq;         #将dba权限授权给内部管理员账号和密码;
        ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;         #修改密码规则策略为密码永不过期;
     ------------------------------


修改oracle 服务名,默认是helowin
1、首先,确定你的 Oracle 服务名,你可以使用以下SQL语句查询:

SQL> SELECT value FROM v$parameter where name='service_names';

2、然后,登录到 Oracle 数据库,用 sysdba 角色登录,使用以下SQL语句修改 Oracle 服务名:

SQL> ALTER SYSTEM SET service_names='new_service_name' SCOPE=SPFILE;

3、重启 Oracle 数据库,系统会根据 spfile 文件自动加载新的服务名:

SQL> SHUTDOWN IMMEDIATE

SQL> STARTUP

4、最后,使用以下SQL语句确认服务名是否已经更改:

SQL > SELECT value FROM v$parameter where name='service_names';

6  如果出现 navicat无法登陆

alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))'; – 然后重启,如果执行不成也退出
然后退出SQL页面在执行
lsnrctl start #开启监听
dbstart # 启动用户实例

Docker可以用来创建轻量级的应用容器,但它并不直接支持在容器安装Oracle数据库。因为Oracle是一个完整的服务器软件包,包含操作系统依赖、服务管理和庞大的数据文件,不适合直接在其上构建Docker镜像。 如果你想在Docker环境中运行Oracle数据库,通常的做法是: 1. **下载Oracle的Linux发行版**:Oracle提供了一些基于Linux的预配置虚拟机(如Oracle Linux),它们包含了所有必要的组件,包括数据库软件。从Oracle官网下载适合的版本。 2. **打包到Dockerfile**:编写一个Dockerfile,这个文件会指导如何从基础镜像开始,安装Oracle数据库,设置环境变量和配置文件等。 ```dockerfile FROM oraclelinux:7 # ... (安装所需的库,设置环境变量,下载安装包) RUN ... # ... (安装Oracle数据库) RUN ... # ... (启动数据库服务并配置监听) EXPOSE <port> ENTRYPOINT ["/bin/bash", "-c", "your-oracle-startup-script"] # ... (构建镜像) CMD ["./your-oracle-startup-script"] ``` 3. **构建Docker镜像**:使用`docker build -t your-image-name .`命令构建自定义的Docker镜像。 4. **运行容器**:通过`docker run -p host-port:container-port your-image-name`命令运行容器,并映射主机端口到容器端口。 5. **管理数据库**:使用Docker提供的网络连接访问容器内的数据库,比如`docker exec -it container_id sqlplus`。 **注意事项**: - 这个过程可能会涉及到大量的步骤和配置调整,尤其是当需要处理许可证和安全设置时。 - 如果你需要频繁地更新数据库,或者有高可用性和持久化存储的需求,可能还需要考虑使用更专业的数据库解决方案,比如Oracle Database Container for Kubernetes (DBaaS on Kubernetes) 或者将数据库部署在宿主机上而非容器内。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值