1.拉取oracle11g的镜像文件
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
2.查看镜像
docker iamges
3.启动容器,并使用volume方式挂载数据目录
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
4.容器内环境配置
- 进入容器
docker exec -it oracle bash
- 切换到 root 用户,密码为 helowin
su root
- 编辑环境变量
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命令行
su oracle #切换用户身份
sqlplus /nolog
使用 “操作系统认证” 的方式,登录oracle
conn / as sysdba
如果直接使用默认的 root 用户登录,会报登录失败。
这里必须使用 su - oracle 命令,将当前用户切换到 oracle,然后在执行登录命令
5.使用外部工具连接
- 配置防火墙
防火墙要允许 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
-
外部访问
- 用户及密码管理
ALTER USER system IDENTIFIED BY *****;/*修改密码*/
CREATE USER ljl_etl IDENTIFIED BY *******;/*创建用户*/
grant connect, resource to ljl_etl;/*授权连接和资源角色*/
ALTER USER ljl_etl ACCOUNT UNLOCK;/*用户解锁*/