1,拉取镜像:
sudo docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
sudo docker images
2,启动一个临时容器,用于拷贝数据库文件,挂载到宿主主机,使数据持久化:
sudo docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
sudo docker ps
3,拷贝需要持久化的文件到宿主机:
sudo mkdir -p /data/oracle/oradata
sudo docker cp oracle11g:/home/oracle/app/oracle/oradata/helowin /data/oracle/oradata/helowin
sudo docker cp oracle11g:/home/oracle/app/oracle/flash_recovery_area/helowin /data/oracle/oradata/flash_recovery_area
4,移除容器,重新运行一个:
sudo docker stop oracle11g
sudo docker rm oracle11g
sudo docker run -d -it -p 1521:1521 --name oracle11g --restart=always -v /data/oracle/oradata/helowin:/home/oracle/app/oracle/oradata/helowin -v /data/oracle/oradata/flash_recovery_area:/home/oracle/app/oracle/flash_recovery_area/helowin registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
5,查看日志,发现有错误信息:
sudo docker logs oracle11g
6,进容器查看对应错误信息:
sudo docker exec -it oracle11g bash
cat /home/oracle/app/oracle/diag/rdbms/helowin/helowin/trace/alert_helowin.log
发现是挂载的路径没有权限:
给挂着的路径加上权限:
su - root #密码是helowin
sudo chown -R oracle /home/oracle/app/oracle/flash_recovery_area/helowin
sudo chown -R oracle /home/oracle/app/oracle/oradata/helowin
按两次Ctrl + D 退出容器编辑
重启一下Oracle容器并查看日志:
sudo docker restart oracle11g
sudo docker logs oracle11g
日志如下,没有报错说明已经启动成功
7,修改密码:
sudo docker exec -it oracle11g bash
su - root #切换root,密码helowin
vi /etc/profile #编辑profile文件配置Oracle环境变量
8,在profile文件尾部添加:
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
9,保存后重新加载环境变量使其生效:
source /etc/profile
10,创建软连接(可以直接用oracle命令,就不需要进入bin目录中执行相应的命令了)
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
11,切换到oracle用户,登录sqlplus并修改sys、system用户密码:
su - oracle
sqlplus / as sysdba # 登录
CONNECT / AS SYSDBA; # 连接,需要进行操作系统验证,才可进行连接登录
alter user system identified by oracle2024; # 修改system用户账号密码oracle2024
alter user sys identified by oracle2024; # 修改sys用户账号密码oracle2024
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; # 修改密码规则策略为密码永不过期
exit;
12,以下是使用dbeave数据库连接工具创建表: