docker 安装oracle

镜像地址:

阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/images

DockerHub:https://hub.docker.com/

我使用的是阿里云的镜像,下载速度更块。

一、oracle10g、oracle12c

1、配置

安装oracle10和oracle12比较顺利,基本没有什么坑,下面记录一下

docker pull registry.cn-hangzhou.aliyuncs.com/chenyl/oracle-xe-10g #下载镜像
docker images #查看镜像
docker run -d -p 1521:1521 --name oracle10g registry.cn-hangzhou.aliyuncs.com/chenyl/oracle-xe-10g #运行镜像
#其中-d表示后台运行,这样退出终端docker容器不会挂掉,--name给容器起一个名字
docker exec -it oracle10g bash #进入容器
#-i表示交互方式,t表示终端

#修改密码
sqlplus /nolog
connect sys/oracle as sysdba
# alter user username identified by password;
alter user system identified by "123456";
alter user sys identified by "123456";
#创建用户并设置密码
create user oracle10 identified by "123456“;
#oracle密码默认有效期是180天好像,设置这个密码不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

#oracle12c的镜像安装也是这样,只是拉取的镜像不一样而已
docker pull registry.cn-hangzhou.aliyuncs.com/clearcodecn/oracle12c

如果出现Connected to an idle instance;可以试一下重启oracle服务:service oracle restart,或者数据库监听未启动

这样就安装好了,可以使用navicat连接了

2、连接

进入容器之后,使用如下命令查看数据库提供监听服务的名字

lsnrctl status

这里有很多个监听服务,随便连接一个都可以:

二、oracle11g

为什么把oracle11g单独拿出来呢?因为这个镜像需要自己设置一下配置文件,比较奇怪...

这里需要自己配置一下环境变量,其他的基本一样

我们安装oracle10和12的时候,运行容器后进入可以之间操作数据库了,但是oracle11会报错

这里需要我们在docker里面设置一下环境变量

su root
#密码为helowin
vi /ect/profile

# 追加
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

#source一下使配置生效
source /etc/profile
#切换回oracle用户
su oracle


#因为重启docker之后echo$ORACLE_HOME为空,并且lsnrctl status不能使用,发现只有再次source /etc/profile之后才可以使用,所以在oracle用户下~/.bashrc中增加
source /etc/profile

这样之后你就可以按照前面的步骤进行修改密码等操作了。

 

 

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
发出的红包

打赏作者

无情的搬砖机器

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值