#先启动一个oracle11g容器
docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
##持久化
mkdir -p /data/oracle/oradata
docker cp oracle11g:/home/oracle/app/oracle/oradata/helowin /data/oracle/oradata/helowin
docker cp oracle11g:/home/oracle/app/oracle/flash_recovery_area/helowin /data/oracle/oradata/flash_recovery_area
docker stop oracle11g
docker rm oracle11g
docker run -d -it -p 1521:1521 --name oracle11g --restart=always \
-v /etc/localtime:/etc/localtime \
-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
##第一次启动报错ORA-00205: error in identifying control file, check alert log for more info
##要进行更改
docker exec -it oracle11g bash
su - root #密码是helowin
chown -R oracle /home/oracle/app/oracle/flash_recovery_area/helowin
chown -R oracle /home/oracle/app/oracle/oradata/helowin
docker restart oracle11g
docker logs oracle11g
##oracle 启动成功后的更改
##容器内增加配置并生效
docker exec -it oracle11g bash
su - root #切换root,密码helowin
vi /etc/profile #编辑profile文件配置Oracle环境变量 ,增加到文件最后
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
source /etc/profile
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
su - oracle
sqlplus / as sysdba
CONNECT / AS SYSDBA;
alter user system identified by gdlisnet;
alter user sys identified by gdlisnet;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
exit;
#重启oracle11g容器并远程验证
sqlplus system/gdlisnet@ip:1521/helowin