Docker安装Oracle

340 阅读1分钟

1.启动

docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

 持久化启动的方式 

docker run -d -it -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 

查看启动的线程 netstat -tulnp 

容器内环境配置 进入容器 

docker exec -it oracle11g bash

切换到 root 用户 su root,密码为 helowin 

 docker容器配置环境变量不是在 /etc/profile 中,容器启动不会走这个文件。 可以将环境变量的配置设置在 /home/oracle/.bashrc 文件下,这样可以省略掉软连接的创建 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin 

编辑环境变量 vi /home/oracle/.bashrc,在文件最后加入以下命令 

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

wq 保存并退出。然后使用 

source /home/oracle/.bashrc 

刷新环境变量,并使之生效 

 进入 oracle 命令行 使用 sqlplus /nolog 进入oracle命令行 

使用 “操作系统认证” 的方式,登录oracle conn / as sysdba 

如果直接使用默认的 root 用户登录,会报登录失败。

这里必须使用 su - oracle 命令,将当前用户切换到 oracle,然后在执行登录命令 ORA-12514, TNS:listener does not currently know of service requested in connect descriptor 这个错误是由于数据库名用错了 su - oracle sqlplus /nolog conn / as sysdba select instance_name from v$instance; show user; 

 使用上述命令查出来的,就是所有可用的 “数据库名” 和 “用户名” 阿里的这个镜像,所有的密码都是统一的 helowin system用户具有DBA权限,但是没有SYSDBA权限。平常一般用该帐号管理数据库。 而sys用户是Oracle数据库中权限最高的帐号,具有“SYSDBA”和“SYSOPER”权限,一般不允许从外部登录 配置防火墙 防火墙要允许 1521 端口,外部的数据库管理工具才能连的上  

# 打开防火墙 

systemctl start firewalld 

# 查询端口状态

 firewall-cmd --query-port=1521/tcp

# 永久性开放端口 

firewall-cmd --permanent --zone=public --add-port=1521/tcp

# 重启防火墙 

firewall-cmd --reload
firewall-cmd --query-port=1521/tcp 

原文链接:blog.csdn.net/chy555chy/a…