docker oracle 启动监听_docker安装oracle11g_实际操作成功

时间:2024-10-13 07:21:13

参考官方镜像地址信息:

.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容器(首次可省略)

查看oracle的已经创建的容器(首次可以省略)

删除已经创建的容器,释放1521端口

使用 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了.谢谢浏览!