拉取并启动镜像
- 下载oracle镜像
docker pull oracleinanutshell/oracle-xe-11g
- 创建数据卷
docker volume create oracle-xe-vol
- 创建并启动容器,并设置数据卷挂载
docker run -d -p 1521:1521 --privileged=true --name oracle11-xe -v 'oracle-xe-vol:/u01/app/oracle/oradata' -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g
- 进入容器
docker exec -it oracle11-xe /bin/bash
安装rlwrap
安装rlwrap是防止在sqlplus中,按方向键或退格键出现乱码。
- 修改apt-get源为国内的阿里云
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat > /etc/apt/sources.list << EOF
deb http://mirrors.aliyun.com/debian buster main
deb http://mirrors.aliyun.com/debian-security buster/updates main
deb http://mirrors.aliyun.com/debian buster-updates main
EOF
- 更新配置
apt-get update
- 安装rlwrap
apt-get install rlwrap
- 修改shell配置
echo "alias sqlplus='rlwrap sqlplus'" >> /etc/profile
source /etc/profile
数据库配置
- 切换用户
su - oracle
- 进入sqlplus工具
sqlplus /nolog;
- 超管登录
conn system/oracle as sysdba;
- 创建数据库
create tablespace cyberpeace datafile '/u01/app/oracle/oradata/XE/cyberpeace.dbf' size 100m autoextend on next 10m;
- 创建用户并分配数据库
create user cyberpeace identified by 123456 default tablespace cyberpeace;
- 授予用户dba权限
grant connect,resource,dba to cyberpeace;
测试连接
- 在另一台机器上使用sqlplus连接oracle
sqlplus /nolog;
conn cyberpeace/123456@//{ip}:1521/XE
参考资料
https://wenku.baidu.com/view/67836338c6da50e2524de518964bcf84b9d52daa.html
http://tech.fubaore.com/tech/20220120/1001107971.html