1. oracle安装

参考rabbitMQ

1、进入docker hub镜像仓库地址:https://hub.docker.com/

2、搜索jaspeen/oracle-11g,进入官方的镜像,在tag页签中可以看到几种类型的镜像;

3、拉取镜像

docker pull jaspeen/oracle-11g:latest

docker images 查看所有镜像

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

4、下载oracle 11g安装文件

oracle 官网 下载所需要的安装包,这里我们以oracle 11g 为例子,分别下载 linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip两个压缩包,

下载资源oracle需要登陆,在浏览器中打开oracle 11g 先登陆,点下载后复制下载链接,采用wget -b后台下载。-c 断点续传下载文件。

mkdir -p /usr/mpsp/0_dockerData/oracle/install/

wget -c -b -O oracle11gR2_1.zip https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip?AuthParam=1598528369_97ae5d187f731e867cb573c880ef2476

wget -c -b -O oracle11gR2_2.zip https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip?AuthParam=1598527010_d3c13beb257c3ae2f77103be26cbd0a2

unzip oracle11gR2_1.zip

unzip oracle11gR2_2.zip

将文件解压出来,放到/usr/mpsp/0_dockerData/oracle/install/下,保证目录结构为:/usr/mpsp/0_dockerData/oracle/install/database

 

4、启动镜像

docker stop oracle11g

docker rm oracle11g

docker run -d --privileged --name oracle11g --restart=always -p 11521:1521 -e DEFAULT_SYS_PASS=umpay2020 -v /usr/mpsp/0_dockerData/oracle/install:/install -v /usr/mpsp/0_dockerData/oracle/dpdump:/opt/oracle/dpdump 0c8711fe4f0f

privileged 给这个容器特权,安装oracle可能需要操作需要root权限的文件或目录

查看安装日志:

docker exec oracle11g bash -c "tail -f /opt/oracle/oraInventory/logs/installActions2020-08-28_05-49-01AM.log"

5、进入docker,开放端口,创建用户

oracle安装目录:/opt/oracle/app/product/11.2.0/dbhome_1/network/admin

docker exec -it oracle11g /bin/bash

/sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT

su - oracle

sqlplus /nolog

conn / as sysdba;

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

alter user umpay account unlock;// 然后解锁

create user umpay identified by umpay2020;

grant create session,create table,create view,create sequence,unlimited tablespace to umpay ;

grant dba to umpay ;

 

  1. 失败:Checking swap space: 0 MB available, 150 MB required. Failed <<<<

解决方法:

1、检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。如果返回的信息概要是空的,则表示 Swap 文件不存在。运行以下命令:

swapon -s

2、检查文件系统在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令:

df -hal

3、创建并允许 Swap 文件下面使用 dd 命令来创建 Swap 文件。检查返回的信息,还剩余足够的硬盘空间即可。

dd if=/dev/zero of=/swapfile bs=1024 count=512k

参数解读:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > of=文件名:输出文件名,缺省为标准输出。即指定目的文件。

< of=output file >bs=bytes:同时设置读入/输出的块大小为bytes个字节count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。

4、格式化并激活 Swap 文件上面已经创建好 Swap 文件,还需要格式化后才能使用。运行命令

mkswap /swapfile

5、激活 Swap ,运行命令

swapon /swapfile

6、以上步骤做完,再次运行命令,你会发现返回的信息概要::

swapon -s

Filename Type Size Used Priority

/swapfile file 524284 0 -1

7、如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。用 vim 打开 /etc/fstab 文件,在其最后添加如下一行:

/swapfile swap swap defaults 0 0

8、最后,赋予 Swap 文件适当的权限:

chown root:root /swapfile

chmod 0600 /swapfile

9、重建

a) 停用:swapoff /swapfile

b) 激活:swapon /swapfile

c) 删除:rm –rf /swapfile

d) 删除随即启动swap:vi /etc/fstab

 

  1. 解决sqlplus删除方向键等动作乱码

参考oracle/解决sqlplus删除方向键等动作乱码

在docker中安装软件,可以将软件放在映射目录/install中