美文网首页
CentOS7使用docker安装Oracle

CentOS7使用docker安装Oracle

作者: GuanYZ | 来源:发表于2019-10-29 15:58 被阅读0次

    一、安装docker

    1、移除旧版本:

    yum remove docker
    docker-client
    docker-client-latest
    docker-common
    docker-latest
    docker-latest-logrotate
    docker-logrotate
    docker-selinux
    docker-engine-selinux
    docker-engine
    rm -rf /etc/systemd/system/docker.service.d
    rm -rf /var/lib/docker
    rm -rf /var/run/docker
    rm -rf /usr/local/docker
    rm -rf /etc/docker

    2、安装一些必要的系统工具:

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

    3、添加软件源信息:

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    4、更新 yum 缓存:

    yum makecache fast

    5、安装 Docker-ce:

    yum -y install docker-ce

    6、启动 Docker 后台服务:

    systemctl start docker

    PS:如果磁盘默认空间不大,而/home文件夹下空间大,那最好将docker的存储目录变更到/home下:

    cd /home
    mkdir docker
    #1. 修改docker的systemd的 docker.service的配置文件
    #不知道 配置文件在哪里可以使用systemd 命令显示一下.
    
    systemctl disable docker
    systemctl enable docker
    #显示结果
    Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
    #2. 修改docker.service文件.
    
    vim /usr/lib/systemd/system/docker.service
    #3. 在里面的EXECStart的后面增加后如下:
    
    ExecStart=/usr/bin/dockerd --graph /home/docker
    #4. 重新enable 一下docker 服务 重新进行软连接 以及进行一次 daemon-reload
    
    systemctl disable docker
    systemctl enable docker
    systemctl daemon-reload
    systemctl start docker
    7. 查看docker info 信息
    
    
    #5. docker pull 一个image 查看存放路径是否准确
    验证镜像信息存放到了 /home/docker 目录下
    

    二、安装oracle11g

    1. 拉取镜像
    docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    

    已有镜像oracle_11g.tar则导入,将镜像文件oracle_11g.tar上传到系统中(/home/oracle/),执行导入命令:

    docker load --input /home/oracle/oracle_11g.tar
    

    1.1
    临时关闭selinux然后再打开(解决docker挂载的目录无法读写)

    setenforce 0
    
    1. 启动oracle
    docker run -d -p 1521:1521 -v /home/data/oracle:/home/data/oracle --name oracle11 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    

    3.进入容器中:

    docker exec -it oracle11 /bin/bash
    
    1. 切换到root用户模式下
    su root
    

    输入密码helowin

    1. 编辑/etc/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
    
    1. 重启配置文件服务
    source /etc/profile
    
    1. 建立sqlplus软连接
    ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
    

    7.1. 修改用户权限,让oracle有权限创建文件

    chown -R oracle /home/data/
    
    1. 切换到oracle用户,修改oracle的相关账号密码
    su oracle
    

    登录sqlplus并修改sys、system用户密码(依次执行如下命令:

    sqlplus /nolog
    

    然后

    conn /as sysdba
    

    然后

    alter user system identified by system;
    

    然后

    alter user sys identified by system;
    

    然后

    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
    

    也可以创建新用户>create user admin identified by admin;
    并给用户赋予权限>grant connect,resource,dba to admin;

    经过以上步骤,即可使用创建的账号连接oracle数据库了!

    PS:远程数据库的导出:

    exp USER_XXX/{password}@192.168.1.111:1521/helowin file=/home/data/bigdata_xxx.dmp owner=USER_XXX
    

    远程数据库的导入:

    imp USER_XXX/{password} file=/home/data/bigdata_xxx.dmp full=y
    



    三、安装oracle12c

    1.确认自己的docker源是安装阿里的docker源,下面是我的docker源

    命令:
    cat /etc/docker/daemon.json

    {
      "registry-mirrors": ["https://gdyp3kvs.mirror.aliyuncs.com"]
    }
    

    如果不是这个源,改一下并重启docker。

    1. 查看dockers能下载的镜像
    docker search oracle
    INDEX       NAME                                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    docker.io   docker.io/oraclelinux                           Official Docker builds of Oracle Linux.         651       [OK]       
    docker.io   docker.io/jaspeen/oracle-11g                    Docker image for Oracle 11g database            159                  [OK]
    docker.io   docker.io/oracleinanutshell/oracle-xe-11g                                                       97                   
    docker.io   docker.io/oracle/graalvm-ce                     GraalVM Community Edition Official Image        70                   [OK]
    docker.io   docker.io/absolutapps/oracle-12c-ee             Oracle 12c EE image with web management co...   38                   
    docker.io   docker.io/araczkowski/oracle-apex-ords          Oracle Express Edition 11g Release 2 on Ub...   30                   [OK]
    docker.io   docker.io/oracle/nosql                          Oracle NoSQL on a Docker Image with Oracle...   24                   [OK]
    docker.io   docker.io/wnameless/oracle-xe-11g-r2            Oracle Express Edition 11g Release 2 on Ub...   21                   
    docker.io   docker.io/datagrip/oracle                       Oracle 11.2 & 12.1.0.2-se2 & 11.2.0.2-xe        19                   [OK]
    docker.io   docker.io/truevoly/oracle-12c                   Copy of sath89/oracle-12c image (https://g...   17                   
    docker.io   docker.io/oracle/weblogic-kubernetes-operator   Docker images containing the Oracle WebLog...   12                   
    docker.io   docker.io/openweb/oracle-tomcat                 A fork off of Official tomcat image with O...   8                    [OK]
    docker.io   docker.io/iamseth/oracledb_exporter             A Prometheus exporter for Oracle modeled a...   3                    
    docker.io   docker.io/18fgsa/oracle-client                  Hosted version of the Oracle Container Ima...   2                    
    docker.io   docker.io/oracle/coherence-operator             Kubernetes Operator for Oracle Coherence        2                    
    docker.io   docker.io/paulosalgado/oracle-java8-ubuntu-16   Oracle Java 8 on Ubuntu 16.04 LTS.              2                    [OK]
    docker.io   docker.io/softwareplant/oracle                  oracle db                                       2                    [OK]
    docker.io   docker.io/publicisworldwide/oracle-core         This is the core image based on Oracle Lin...   1                    [OK]
    docker.io   docker.io/roboxes/oracle7                       A generic Oracle Linux 7 base image.            1                    
    docker.io   docker.io/amd64/oraclelinux                     Official Docker builds of Oracle Linux.         0                    
    docker.io   docker.io/arm64v8/oraclelinux                   Official Docker builds of Oracle Linux.         0                    
    docker.io   docker.io/bitnami/oraclelinux-extras            Oracle Linux base images                        0                    [OK]
    docker.io   docker.io/bitnami/oraclelinux-runtimes          Oracle Linux runtime-optimized images           0                    [OK]
    docker.io   docker.io/pivotaldata/oracle7-test              Oracle Enterprise Linux (OEL) image for GP...   0                    
    docker.io   docker.io/toolsmiths/oracle7-test
    

    我下载的是其中的 docker.io/absolutapps/oracle-12c-ee

    docker pull absolutapps/oracle-12c-ee
    

    3.下载完成后,依次执行如下命令:

    #运行容器
    docker run -d -p 8180:8080 -p 1522:1521 -v /home/data/oracle12c:/home/data/oracle --name oracle-12cR1-ee --privileged absolutapps/oracle-12c-ee
    #容器开启时间很长,需要打开日志查看安装情况,此条命令会卡很久,看个人机器配置,我卡了20分钟。
    docker logs -f oracle-12cR1-ee
    #进入容器内部
    docker exec -it oracle-12cR1-ee /bin/bash
    #授权
    chown -R oracle /home/data/
    #登录
    sqlplus system/oracle@//localhost:1521/orcl
    #接下来就和上面安装11g的一样了,比如修改system的密码,创建一个帐密为admin/admin,且有dba权限的用户:
    alter user system identified by system;
    create user admin identified by admin;
    grant connect,resource,dba to admin;
    

    测试连接(注意我映射的oracle的端口是1522):


    image.png

    相关文章

      网友评论

          本文标题:CentOS7使用docker安装Oracle

          本文链接:https://www.haomeiwen.com/subject/ebwzbqtx.html