CentOS-8+docker+oracle_11g 安装部署

其实就是拉别人做好的镜像,没啥技术含量

在 CentOS 上安装 Docker 引擎

Docker官方教程 https://docs.docker.com/engine/install/centos/

使用存储库安装

在新主机上首次安装 Docker Engine 之前,需要设置 Docker 存储库。之后,您可以从存储库安装和更新Docker。

设置存储库

安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定存储库。 这个也很快,无需换源阿里源

$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo    
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo   阿里源

在线安装 Docker 引擎

  1. 安装最新版本的 Docker Engine 和 containerd

    $ sudo yum install docker-ce docker-ce-cli containerd.io
    
  2. 启动 Docker。

    $ sudo systemctl start docker
    $ sudo systemctl enable docker    #设置开机自启动
    
  3. 通过运行hello-world 映像验证 Docker Engine 是否已正确安装。

    $ sudo docker run hello-world
    

在 Docker上安装 oracle_11g

1、下载oracle镜像

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

2、检查镜像

sudo docker images

3、运行镜像

sudo docker run --restart=always -d -p 8080:8080 -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

4、配置oracle服务

step1:进入容器

docker exec -it oracle11g /bin/bash

step2:修改环境变量

su root
#注意此时密码是:  helowin
vi /etc/profile

定位到 unset -f pathmunge后,按下o换到下一行插入模式,粘贴如下环境变量,按esc 输入 :wq!

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
刷新环境变量,****
source /etc/profile  

step3:配置软连接

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

5、修改oracle用户

容器切换oracle用户

su oracle
登录oracle dba
sqlplus /nolog;
进入SQL后
conn /as sysdba;
修改初始账号
alter user system identified by system;
alter user sys identified by system;
添加自己的dba账号
create user my_account identified by my_password;
grant connect,resource,dba to my_account;
设置密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
关闭
shutdown;
启动数据库
startup

## 测试

-- 创建表空间
--  默认设置表空间自动扩展,且每次扩展空间大小为100M,限制最大空间为5G,注:datafile后面是表空间的物理存储路径,文件名的后缀可以随便.
create tablespace test_user01 datafile '/home/oracle/app/oracle/oradata/helowin/test_user01.dbf' size 200M autoextend on next 100m maxsize 5G;
-- 创建用户
create user test_user01 identified by test_user01;
-- 分配表空间到用户
alter user test_user01 default tablespace test_user01;
-- 赋权sysdba权限
grant sysdba to test_user01;
-- 赋权其他权限,否则无法登录
grant create session,create table,create view,create sequence,connect,resource,unlimited tablespace to test_user01; 
-- 尝试用test_user01登录
conn test_user01/test_user01; 
-- 登录之后查询用户所具有的权限
select * from session_privs; 

!重启后再次进入登录

进入root用户后直接进入 或 从普通用户进入docker

[centos8@localhost ~]$ sudo docker exec -it oracle11g bash
或
[root@localhost centos8]# docker exec -it oracle11g bash

[oracle@6297c5db7817 /]$source /etc/profile  # 每次进入刷新下环境变量
[oracle@6297c5db7817 /]$ sqlplus /nolog

退出

SQL> exit
[oracle@6297c5db7817 /]$ exit
exit
[root@localhost centos8]# 
相关指令
systemctl status docker 可查docker状态  
docker ps 查看当前运行的容器
[oracle@6297c5db7817 /]$ sqlplus /nolop
若报错
Error 6 initializing SQL*Plus
SP2-0667: Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
那就,再来一次
[oracle@6297c5db7817 /]$ source /etc/profile 
[oracle@6297c5db7817 /]$ sqlplus /nolog
就这样吧