参考:https://blog.csdn.net/qq_38380025/article/details/80647620#commentsedit;;

原文有些地方不是很详细,所以参考该文,并做补充

1,拉取镜像:

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

镜像有点大,确保网络不要中断吧,我拉取的时候网络都断了几次;

2,创建容器 

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

3,启动容器

docker start oracle11g

4,进入镜像配置

docker exec -it oracle11g bash

进行软连接:  sqlplus /nolog

如果没有该命令则切换到root用户下:

su root;

密码:helowin

编辑环境变量:

vi /etc/profile

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

5、创建软连接

            ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

6、切换到oracle 用户

              这里还要说一下,一定要写中间的内条 -   必须要,否则软连接无效

su - oracle

7,登陆sqlplus 修改system用户密码

sqlplus /nolog

conn /as sysdba

接着执行下面命令

        alter user system identified by system;

        alter user sys identified by sys;

8,用客户端连接oracle

我这里用的navicat,需要去oracle官网下载一个instantclient,然后解压到navicat安装目录

 然后navicat选项配置刚刚解压的oci.dll文件

 如果此时去连接oracle的话,navicat会报错:

ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

不着急,还需要进入oracle的docker容器做一个配置:

docker exec -it oracle11g bash

需要找到这个文件tnsnames.ora;

这个文件在:  $ORACLE_HOME/network/admin

 然后修改tnsnames.ora

docker_oracle11 =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT =1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = helowinXDB)
   )
)

然后重启容器:

docker restart 容器id

现在可以用system用户连接,密码:system

连接之后创建表空间,创建用户就可以使用了

如有问题,欢迎留言区讨论留言

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐