拉取镜像:

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
创建容器 

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



# 进入oracle容器
docker exec -it oracle11g bash
# 切换到root用户,密码helowin
su root
密码:helowin

# 配置sqlplus环境变量
vim /etc/bashrc
# 增加
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
# 重新加载
. /etc/bashrc
# 创建软链
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

登录sqlplus
su oracle
sqlplus /nolog
conn /as sysdba
管理用户权限等
# 修改sys和system密码
alter user system identified by system;
alter user sys identified by sys;
alter profile default limit password_life_time unlimited;
# 创建用户
create user anyline identified by anyline;
# 删除用户及对应数据
# drop user anyline cascade;
# 并给用户赋予权限
grant connect,resource,dba to anyline;

重启容器后

docker restart oracle11g

=======================================

1、进行持久化存储的准备工作
    #创建持久化存储目录
    sudo mkdir -p /docker/oracle/helowin
    #将oracle数据复制到本机
    sudo docker cp oracle11g:/home/oracle/app/oracle/oradata/helowin/ /docker/oracle
    #并且把 helowin 目录所有者赋予 500,因为500是容器内 oracle 组合用户的 id
    sudo chown -R 500:500 /docker/oracle

2、删除容器,并新建容器(挂载卷) 
    docker rm -f oracle11g
    docker run --name oracle11g -p 1521:1521 --privileged=true --restart=always \
    -v /docker/oracle/helowin:/home/oracle/app/oracle/oradata/helowin \
    -itd registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
3、进入容器再配置:
    #需要进入容器里删除新生成的版本控制文件,将数据卷中的版本控制文件复制为新生成的版本控制文件
docker exec -it oracle11g bash
cd /home/oracle
source .bash_profile     #加载oracle环境变量
rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
sqlplus / as sysdba

#修改信息后,重新启动数据库
shutdown immediate; --关闭数据库
startup; --启动数据库
exit:退出软链接
navicat 连接 oracle 参考【navicat连接Oracle 11G