一、 下载镜像
两种方式
- docker pull alexeiled/docker-oracle-xe-11g
- 下载对应版本的 tar 包,并将 tar包文件载入到镜像
docker load < apacheos.tar 或 docker load --input apacheos.tar
二、 启动容器
指定端口并挂载本地目录
docker run -d --shm-size=1g -p 8181:8080 -p 1521:1521 -v D:\work\soft\docker-resource\docker-data\oradata:/etc/entrypoint-initdb.d alexeiled/docker-oracle-xe-11g
三、进入容器
docker exec -it oracle11gXE /bin/bash
cd /etc/entrypoint-initdb.d #创建文件,在本地目录可看到文件已共享
四、 创建表空间等
表空间目录需要设置到本地共享目录
create tablespace sonata_data logging datafile '/etc/entrypoint-initdb.d/sonata.dbf' size 1024m autoextend on next 500m maxsize unlimited extent management local;
五、 创建用户并授权
create user sonata_scene identified by sonata_scene default tablespace sonata_data;
grant connect,resource,dba to sonata_scene;
到此为止,可以用plsql等工具连接docker 模式的 oracle11g,如下图
六、 docker宿主机停机导致数据文件脱机
由于宿主机停机,导致本地共享数据文件脱机,启动容器后会出现连接失败情况,此时需要恢复数据文件,重启数据库,如下: