1.docker第一次安装失败,下一次会提示同名的容器已经存在,解决办法:

docker container ls -a

根据上面执行的接口,选择一个containerid,然后带入到下面的命令

docker container rm -f containerid

2.安装的时候报文件找不到

我是在WINDOWS上通过CHROME浏览器下载并在WINDOWS上解压的(经验告诉我解压第一个PART会自动解压第二个,但是并没有),只解压了第一个oracle安装文件(linux.x64_11gR2_database_1of2.zip),第二个(linux.x64_11gR2_database_2of2.zip)没有解压。。。所以报错。

3.修改sys/system用户密码

使用sqlplus / as sysdba登陆进去之后执行如下命令:

alter user sys identified by abc123;
alter user system identified by abc123;

4.创建新用户

使用sqlplus / as sysdba登陆进去之后执行如下命令或者使用IDE工具以SYS/SYSTEM登录之后执行:

create user acct identified by abc123;
grant resource,connect to acct;
grant select any table to acct;
grant debug any procedure,debug connect session to acct;

5.查看ORACLE SID或者SERVICENAME

一般来说SID和SERVICENAME是一致的

使用sqlplus / as sysdba登陆进去之后执行如下命令:

select instance_name from  V$instance;

6.重启服务器之后重启docker(要求root权限)

执行命令:

docker start 043afeb3a74d

检查oracle是否启动成功

netstat -anp|grep 1521

7.设置开机启动

7.1首先docker自己得先开机启动

systemctl enable docker.service

7.2将oracle容器设置为开机启动

要求容器没有运行

docker run --restart=always 043afeb3a74d

要求containerid=043afeb3a74d的容器是运行着的(我自己测试这种方式)

docker update --restart=always 043afeb3a74d

测试:先reboot机器

然后执行netstat -anp|grep 1521

使用Docker安装oracle 11g

简介

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。

借助docker,安装oracle不再困难,只需要几步即可。

一,安装Docker(就不截图了)

如果没有root用户或者你的用户没有加入sudoers列表,你是没法玩的

yum update

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

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

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

yum install docker-ce-18.06.3.ce-3.el7

二,安装

2.1、安装oracle 11g镜像到docker

2.1.1、搜索符合条件的镜像

docker search oracle

NAME                                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
oraclelinux Official Docker builds of Oracle Linux. 573 [OK]
jaspeen/oracle-11g Docker image for Oracle 11g database 99 [OK]
oracle/openjdk Docker images containing OpenJDK Oracle Linux 55 [OK]
……

2.1.2、选择安装 jaspeen/oracle-11g,等待下载安装完成

docker pull jaspeen/oracle-11g

2.1.3、查看下载好的镜像

docker images

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
jaspeen/oracle-11g latest 0c8711fe4f0f 3 years ago 281MB

注意,这个镜像没有直接安装好oracle,他帮我们配置好了环境,提供了安装脚本,我们只需要按照要求把oracle的安装目录配置好,启动镜像,即可

2.2、准备oracle 11g安装文件

2.2.1、下载oracle 11g安装文件

oracle 官网 下载所需要的安装包,这里我们以oracle 11g 为例子,分别下载 linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip两个压缩包,下载完成后解压到home目录(如下目录结构)


home
└─database
├─doc
├─install
├─response
├─rpm
├─sshsetup
├─stage
├─runInstaller
└─welcome.html

2.3、安装oracle

2.3.1、注意事项

为什么要解压成上面的目录结构,我们先来看看jaspeen/oracle-11g镜像提供的安装脚本

#!/usr/bin/env bash
set -e
source /assets/colorecho trap "echo_red '******* ERROR: Something went wrong.'; exit 1" SIGTERM
trap "echo_red '******* Caught SIGINT signal. Stopping...'; exit 2" SIGINT if [ ! -d "/install/database" ]; then
echo_red "Installation files not found. Unzip installation files into mounted(/install) folder"
exit 1
fi echo_yellow "Installing Oracle Database 11g" su oracle -c "/install/database/runInstaller -silent -ignorePrereq -waitforcompletion -responseFile /assets/db_install.rsp"
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/app/product/11.2.0/dbhome_1/root.sh

从脚本里可以看到它会读取/install/database目录,如果不存在会给出提示Installation files not found. Unzip installation files into mounted(/install) folder

2.3.2、启动镜像(执行安装oracle)

命令的解释:

  • docker run 启动容器的命令
  • privileged 给这个容器特权,安装oracle可能需要操作需要root权限的文件或目录
  • name 给这个容器名一个名字
  • p 映射端口
  • v 挂在文件到容器指定目录 (/home 对应容器 /install/database)
  • jaspeen/oracle-11g 代表启动指定的容器
docker run --privileged --name oracle11g -p 1521:1521 -v /home:/install jaspeen/oracle-11g

Database is not installed. Installing...
Installing Oracle Database 11g
Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 47303 MB Passed
Checking swap space: must be greater than 150 MB. Actual 1023 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-04-17_08-14-23AM. Please wait ...
You can find the log of this install session at:
/opt/oracle/oraInventory/logs/installActions2019-04-17_08-14-23AM.log
……

这个安装过程会很漫长,日志也很多,这里只提供部分。注意到日志里有 100% complete 打印,代表oracle安装成功

2.3.3、安装完成

再次查看运行状态,oracle已经启动完成

docker ps -a

CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                      PORTS                                                                             NAMES
7f53f07c93e5 jaspeen/oracle-11g "/assets/entrypoint.…" About an hour ago Up About an hour 0.0.0.0:1521->1521/tcp, 8080/tcp oracle11g

2.3.4、其他需要注意的,如果日志长时间没有更新,检查docker是否已经死掉

查看docker的状态

docker ps -a
Error response from daemon: An invalid argument was supplied.

如果出现如上提示,表示docker已经死掉,我们只需要重新执行安装步骤,让oracle安装完成

ps:根据我的猜测,我给docker分配的资源不够导致的,我重新把docker的内存和cpu调高一点后oracle顺利安装完成。

docker rm oracle11g
docker run --privileged --name oracle11g -p 1521:1521 -v oracleinstall:/install jaspeen/oracle-11g

三,配置

默认scott用户是被锁定的,我们需要解锁,通过数据库工具即可成功连接到oracle

3.1,连接到容器,

docker exec -it oracle11g /bin/bash

3.2,切换到oracle用户,然后连接到sql控制台

[root@7f53f07c93e5 /]# su - oracle
Last login: Wed Apr 17 08:29:31 UTC 2019
[oracle@7f53f07c93e5 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Apr 17 09:29:49 2019 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>

3.3,解锁账户

SQL> alter user scott account unlock;
User altered.
SQL> commit;
Commit complete.
SQL> conn scott/tiger
ERROR:
ORA-28001: the password has expired
Changing password for scott
New password:
Retype new password:
Password changed
Connected.
SQL>

3.4,使用PL/SQL Devolper连接Oracle数据库

编辑本机oracle客户端或者服务端tnsnames.ora文件,增加如下配置

ACCT_LOCAL_DCOKER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

打开PL/SQL Developer选择ACCT_LOCAL_DCOKER,输入账号、密码即可

3.5使用DBeaver连接Oracle

 

CENTOS 7 使用Docker安装oracle 11g的更多相关文章

  1. CentOS 6.5下安装Oracle 11g(转)

    最近开始学习CentOS使用,做些记录. 参考文献:Cent OS 6_5(x86_64)下安装Oracle 11g 一.硬件要求 1.内存&swap Minimum:1 GB of RAM ...

  2. CentOS 7.5静默安装oracle 11g

    1.安装前环境准备 1.1.配置本地yum源 #因公司内网环境,没有互联网,所以需要配置本地yum源,安装所需依赖包等. #挂载ios镜像centos7.5-1804 [root@oracle ~]# ...

  3. CentOS随笔 - 3.CentOS7安装Oracle 11g xe

    前言 转帖请注明出处: http://www.cnblogs.com/Troy-Lv5/ 由于手上很多项目都是采用Oracle在进行开发, 所以安装Oracle成为必然. 当然有朋友会想为什么不安装1 ...

  4. 使用 docker 快速安装 oracle 11g

    前言 我们在手动安装oracle数据库时,安装步骤纷繁复杂,耗时较长 在此介绍如何使用docker快速安装oracle 11g 一.docker 及其安装环境 操作系统: [root@centos7 ...

  5. centos安装oracle 11g 完全图解

    摘要: 说明: Linux服务器操作系统:CentOS 5.8 32位(注意:系统安装时请单独分区/data用来安装oracle数据库) Linux服务器IP地址:192.168.21.150 Ora ...

  6. CentOS Linux 系统 安装oracle 11g

    CentOS Linux 系统 安装oracle 11g 在Linux系统上安装oracle是比较麻烦,需要配置各种变量啥的,o(︶︿︶)o ,但是没办法,有些东西你总的去接触,而且接触理解的越早越深 ...

  7. CentOS 7静默安装Oracle 11g R2数据库软件

    之前安装Oracle 11g R2数据库软件都是建立在图形界面上的,不过现在大部分服务器上都没有安装图形界面.图形界面安装较为方便,安装选项清晰,步骤明确,但Oracle还支持另一种安装方式,就是通过 ...

  8. centos 安装oracle 11g r2(一)-----软件安装

    centos 安装oracle 11g r2(一)-----软件安装 1.进入管理员权限 [anzerong@localhost ~]# su - root password [root@localh ...

  9. centos 安装oracle 11g r2(三)-----表空间创建

    centos 安装oracle 11g r2(三)-----表空间创建 创建表空间前要保证监听与数据库实例已经启动 1.启动监听 [oracle@localhost ~]$ lsnrctl start ...

  10. centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例

    centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例 一.监听配置(命令:netca) 1.以 oracle 用户输入命令,启动图形化工具配置监听 [oracle@lo ...

随机推荐

  1. error LNK2038: 检测到“_MSC_VER”的不匹配项问题

    _MSC_VER这个相当于做了宏的检测 _MSC_VER 定义编译器的版本. 一些编译器版本的_MSC_VER值:MS VC++ 14.0 _MSC_VER = 1900 vs2015MS VC++ ...

  2. map循环如何跳出循环

    今天在开发的时候遇到了一个问题.就是想在使用map的时候跳出循环无法实现,于是就在网上搜寻了一番,说map本身不能跳出循环,有一个大佬提出了抛出异常的方法,记录一下 let list=[1,2,3,4 ...

  3. JVM中线程的状态以及状态间的转换

    线程在一定条件下,状态会发生变化.线程一共有以下几种状态: 新建状态(New):新创建了一个线程对象. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的 ...

  4. CDS标准视图:付款锁定原因描述 I_PaymentBlockingReasonText

    视图名称:付款锁定原因描述 I_PaymentBlockingReasonText 视图类型:基础 视图代码: 点击查看代码 //Documentation about annotations can ...

  5. CDS标准视图:维护策略描述 I_MaintStrategyTextData

    视图名称:维护策略描述 I_MaintStrategyTextData 视图类型:基础视图 视图代码: 点击查看代码 @EndUserText.label: 'Maintenance Strategy ...

  6. nginx平台初探-1

    初探nginx架构(100%) 众所周知,nginx性能高,而nginx的高性能与其架构是分不开的.那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧. nginx在启动后,在un ...

  7. https证书管理系统- 自动化签发

    https证书管理系统- 自动化签发 第一步:前往网站,注册账户 https://www.lingyanspace.com/ 第二步:进入证书服务菜单,点击新增证书 第三步:填写自有的域名,点击创建订 ...

  8. 第15章 流与IO

    第15章 流与IO 15.1 .NET 流的架构 .NET 流的架构主要包含三个概念:** 后台存储 . 装饰器 以及 流适配器 **,如图所示: C7.0 核心技术指南 第7版.pdf - p655 ...

  9. 天翼云发布边缘安全加速平台AccessOne,四大产品能力助力企业安全高速发展

    本文分享自天翼云开发者社区<天翼云发布边缘安全加速平台AccessOne,四大产品能力助力企业安全高速发展>,作者:天翼云社区官方账号 2023年5月30日全国科技工作者日,以" ...

  10. SqlServer性能检测之Sql语句排查

    很多时候,我们在用SQL语句查询数据时,难免会漏掉对SQL语句性能的考虑,所以有时就会造成SqlServer服务占用过高的问题,为了大致排查是哪些SQL语句造成的问题,我们可以通过如下SQL查询出最近 ...