参考官方镜像地址信息:
.docker.com/r/iatebes/oracle_11g
Docker image for Oracle Database 11g (database installed)
Build from this guide : https://github.com/jaspeen/oracle-11g
Run Oracle DB 11g from docker
$ docker run -d -p 1521:1521 iatebes/oracle_11g
OS users
- root/install
- oracle/install
DB users
- SYS/oracle
SID
- orcl
Database location
/opt/oracle
TNS String pattern
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
Example in my case with above docker run command : IP_DOCKER_HOST = 10.33.66.127 PORT_MAPPING = 1521
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.33.66.127)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
Docker run command with folder mapping
Optionally you can map dpdump folder to easy upload dumps:
docker run -d --privileged --name oracle11g -p 1521:1521 -v :/opt/oracle/dpdump iatebes/oracle_11g
To execute impdp/expdp just use docker exec command:
docker exec -it oracle11g impdp ..
-------以上参考官方提供的信息;下面是实际操作过程;
docker rm containId 删除以前创建的不需要的oracle容器(首次可省略)
使用 docker pull iatebes/oracle_11g 从仓库拉取镜像文件
docker run -d -p 1521:1521 iatebes/oracle_11g //创建11g容器
docker start c40c11c3737a // 启动容器
docker exec -it containId /bin/bash (进入docker容器的内部;一定先进入容器再切用户)
su oracle (切记一定要切换成oracle用户)
sqlplus sys/oracle as sysdba
Sqlplus 使用sys登录后创建表空间
Create tablespace TEST_DS datafile '/home/oracle_for_docker/TEST_DS.dbf' size 500M autoextend on maxsize unlimited;
在docker容器创建oracle的表空间遇到无法创建问题,导致原因是文件夹的执行权限不足导致,需要授权,注意是在容器里面授权操作。
解决方法:
切换到root su root (root/install)
使用sqlplus登录
注意创建表空间时有可能出现权限不足的问题,需要授权操作:
[root@15de95e3000d oradata]# chmod -Rf 777 /home/oracle_for_docker 授权后就可以创建表空间,最后就是常规操作了,创建用户和授权,导入数据,添加工具连接的配置信息即可连接;
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IP)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl))) //官网给出的连接信息
注意将本地或者docker容器外面目录的dmp文件上传到docker oracle容器内部指定的目录,使用下面的指令复制文件:
docker cp 本地文件路径 ID全称:容器路径
到此操作结束,可以愉快的使用orcl了.谢谢浏览!