vlambda博客
学习文章列表

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

   Oracle Database 11g 快捷版 (Oracle Database XE) 是一款基于 Oracle Database 11g 第 2 版代码库的小型入门级数据库,它具备以下优点:免费开发、部署和分发;下载速度快;并且管理简单。所以对于一些需要在本机上进行虚拟化部署测试oracle最好不过。

    本文将对在docker上安装部署Oracle 11g express进行一个步骤详解:

第一步:Linux主机安装Docker容器

(完整安装过程)

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

$ uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

$ sudo yum update

3、卸载旧版本(如果安装过旧版本的话)

$ sudo yum remove docker  docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo


6、可以查看所有仓库中所有docker版本,并选择特定版本安装

$ yum list docker-ce --showduplicates | sort -r

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

7、安装docker

$ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0$ sudo yum install # 例如:sudo yum install docker-ce-17.12.0.ce

 

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

8、启动并加入开机启动

$ sudo systemctl start docker $ sudo systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

$ docker version

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

(快速安装过程)

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

$ uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

$ sudo yum update

3、设置yum源

$ yum install -y docker

4、启动Docker

$ systemctl start docker.service

或者 

$ sudo service docker star

5、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

$ docker version

第二步:Docker容器上部署Oracle 11g express数据库

1、搜索oracle镜像

$ docker search oracle

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

选择相应的oracle版本进行下载

2、下载oracle镜像

$ sudo docker pull docker.io/oracleinanutshell/oracle-xe-11g

3、查看oracle镜像是否已经下载完毕

$ docker images|grep oracle

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

4、启动oracle-xe容器

$ sudo docker run -d --shm-size=2g -p 1521:1521 -p 8080:8080 docker.io/oracleinanutshell/oracle-xe-11g

然后使用数据库管理软件连接(该容器的说明),连接信息如下:

hostname:localhost 端口:1521 SID:XE username:system/sys password:oracle url:http://localhost:8080/apex workspace:internal username:admin password:oracl

5、数据库管理

1)通过命令行

可选步骤 为容器改名与进入容器的bash

1、查看容器都名称

$ docker ps

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

为容器改名 : sudo docker rename 旧名字 新名字 

$ sudo docker rename festive_clarke oracle

旧名字通过 sudo docker image ls 来查看

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

进入容器bash : sudo docker exec -it 容器名或容器id bash

$ sudo docker exec -it oracle bash

$ su oracle

$ sqlplus /nolog

$ connect system

$ password oralce

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

2)通过浏览器

浏览器输入http://172.16.248.120:8080/apex

注意:这里的172.16.248.120是虚拟机的IP

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

3)通过数据库软件来管理数据库

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

日常使用步骤

启动启动docker系统系统服务 : 见第一步(快速安装过程)的4

查看容器ID

$ docker ps -a

CentOS 7、UNIX、Linux基于docker安装Oracle 11g express数据库

启动容器 :sudo docker start 容器名或容器id

例如 :

$ sudo docker start oracle

$ sudo docker start 4861b277b44a

停止容器 : sudo docker stop 容器名或容器id

例如:

$ sudo docker stop oracle

$ sudo docker stop 4861b277b44a

日常常见问题

1、The Network Adapter could not establish the connection链接失败,但在命令窗口可以使用su oracle链接

  解决方案:

    1)查找数据库中HOST的值

        查看oracle数据库中listener.ora配置HOST

LISTENER =  (DESCRIPTION_LIST =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))      (ADDRESS = (PROTOCOL = TCP)(HOST = 4861b277b44a)(PORT = 1521))    )  )

或者通过监听查看HOST

2)修改liunx中的hosts文件,添加HOST解析的值

4861b277b44a为查找到到Oracle中HOST到值