1、拉取oracle数据库的镜像

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

(这里需要注意的是,关闭防火墙以及确保磁盘空间够大,因为此镜像 > 6G,下载失败后再次pull就会承接上次下载失败的进度,防火墙相关命令以及docker卸载重载都在文档末尾有说明。)

2、下载镜像成功之后,查看镜像:

 docker images

3、创建容器:

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

4、进入容器:

docker exec -it oracle11g bash

5、切换到root用户:

su root

密码是:helowin

6、编辑profile文件配置oracle

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

7、加载环境变量

source /home/oracle/.bash_profile

8、使环境变量立即执行:

source /etc/profile

9、切换到oracle 用户

  su - oracle

10、登录oracle

11、sqlplus /nolog

SQL> conn /as sysdba

修改sys、system密码

SQL> alter user system identified by system;

SQL> alter user sys identified by sys;

(也可以创建用户  create user test identified by test;

并给用户赋予权限  grant connect,resource,dba to test;)

修改oracle默认用户密码永不过期:

SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

SQL> exit

12、查看监听是否成功启动

 lsnrctl status

查看监听配置文件:

$ cat /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora 

13、连接oracle数据库时,先检查端口映射是否成功

14、使用Navicat连接oracle:

docker 安装ansible Docker 安装oracle11g_SQL

 

15、此时的服务名为helowin,用户名和密码都为system.

16、防火墙相关命令:

查看防火墙现在状态:systemctl status firewalld.service  如果显示一行绿色的active说明防火墙是开启状态的

关闭防火墙命令:systemctl stop firewalld.service

永久关闭防火墙命令:systemctl disable firewalld.service

17、如何卸载docker:

        第一种方式,开启虚拟机,登录root账户,docker在var/lib目录下,直接放入垃圾回收站中,删除;

docker 安装ansible Docker 安装oracle11g_docker_02

        第二种方式:在命令行中实现  systemctl status docker 查看dockr的状态,如果为active,则使用systemctl stop docker 停止docker运行,yum list installed |grep docker 此命令是查看docker的安装包,查看docker相关的rpm源文件:rpm -qa |grep docker,使用如下命令yum -y remove docker.x86_64 删除所有安装的docker文件包, 其他的docker相关的安装包同样删除操作,删完之后可以再查看下docker rpm源  rpm -qa |grep docker,删除docker的镜像文件,默认在/var/lib/docker目录下 ,rm -rf /var/lib/docker,此时docker卸载已经完成,重新安装docker: yum -y install docker-io

18、对docker安装oracle的一些看法

        Docker安装oracle比传统方式安装要简单些,但是oracle其作为重量级数据库而言部署在docker容器下,如果我们只是仅仅为了简单使用,这么安装没有问题,如果我们还想要除了默认的helowin外的实例,再去创建一个实例,docker下去创建是非常复杂的,没有像传统的在linux下安装出现图形化界面那样方便,而且现在docker技术不太成熟,作为数据库放在docker容器下,如果容器因为操作不当而被删除,那么整个数据库就会丢失,其中数据安全性没有保证。只能说每一种技术都是一把双刃剑,有好的一面也有坏的一面,我们作为使用者应该尽量取其精华去其糟粕。