centos基于docker安装oracle

本文主要是为了讲述在centos服务器上安装docker,并且基于docker安装oracle
下面总共分为三部分:

一、编写目的
二、 安装docker
三、 基于docker安装oracle

一、编写目的:
linux采用静默方式安装oracle配置比较麻烦,稍不在意就会不成功,所以采用docker的方式进行安装orale。

二、安装docker
1、docker要求centos系统的内核版本高于3.10,查看本页面的前提条件验证centos版本是否支持docker。命令为:

$ 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

扩展:(国外镜像一般很难访问,建议配置阿里云镜像。yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo)

6、查看所有仓库中所有docker版本,并且选择特定版本安装。命令为:

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

7、安装docker。命令为:

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

8、启动并加入开机启动。命令为:

$ sudo systemctl start docker
$ sudo systemctl enable docker

9、安装docker是否成功(有client和service两部分表示docker安装启动都成功了),命令为:

$ docker version

(你会看到下面有client和server两个列表)

问题:如果安装的时候报错,大概意思是conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

(1)卸载旧版本的包

$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

(2)再次安装docker

$ sudo yum install docker-ce

三、基于docker安装oracle(使用root用户)

1、拉取镜像-执行命令(服务器必须联网,下载时间较长)

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

2、下载完成后,查看镜像

$ docker images

会出现下面的:registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
就说明拉取好了

3、创建容器

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

这里的oracle11g是为了这个服务起的名字,后面会用到
这里说一下,命令后面的地址一定要是你下载的镜像地址也就是你拉取镜像名字,否则会出现名字已存在等问题!
如果创建成功能会返回容器id

4、启动容器

$ docker start oracle11g

5、进入镜像进行配置
(1)进入镜像

$ docker exec -it oracle11g bash

注意:这时候你就会发现你进入到了oracle@3212类似的目录下
(2)进行软连接

 $ sqlplus /nolog

如果此时出现bash:sqlplus :command not found

(3)那么切换到root用户下,su root 密码为:helowin(这个密码就是helowin,而不是自己root用户的密码,我猜测是从docker容器中切换到docker的root下)

(4)使用vi命令编辑profile文件配置oracle环境变量(在最后加上下面三条,保存并退出)

	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并且修改sys,system用户密码

  $ sqlplus /nolog

进入sqlplus后,用下面命令连接

   conn /as sysdba

接着就可以使用oracle的语句操作了:

alter user system identified by system;
alter user sys identified by sys;(修改system和sys的密码)

注意:当执行修改密码的时候出现:database not open:则执行 alter database open;
注意:这里也许还会提示:ORA-01507: database not mounted,则执行 alter database mount;在执行alter database open;
然后就可以执行修改数据库密码的命令了

改完之后执行:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

exit 是退出SQL软连接

(8)使用pl/sql进行连接

之前把端口映射到1521,那么估计需要配置 tnsnames.ora,先查看一下吧,不行的话,就用下面的

docker_oracle11 =
(DESCRIPTION =

   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
	)
   (CONNECT_DATA =
     (SERVICE_NAME = orcl)
	)
  )

(9)登录如果出现12514的错误的话:
查看oracle的lsnrctl服务,用lsnrctl status命令查看,下面会有两个service,如果对应的service不同,任选其一,
修改tnsnames.ora的 service_name=helowinXDB(这个是另外的一个service名字)

最后的最后:如果你重启了服务器,这时候你需要用Root用户登录并且启动对应的容器和进行设置,步骤如下:
1:启动(oracle11g是因为创建重启的时候名字命为oracle11g)

$ docker start oracle11g

2:进入镜像进行配置

$ docker exec -it oracle11g bash
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值