zoukankan      html  css  js  c++  java
  • Docker环境搭建及安装Oracle11g

    前言

    我们在手动安装oracle数据库时,安装步骤纷繁复杂,耗时较长

    在此介绍如何使用docker快速安装oracle 11g

     一、docker 及其安装环境

    操作系统:

    [root@centos7 ~]# cat /etc/redhat-release 
    CentOS Linux release 7.7.1908 (Core)

    docker 版本:

    [root@centos7 ~]# docker -v
    Docker version 1.13.1, build 7f2769b/1.13.1

    docker 安装方式:

    yum update && yum -y install docker

     docker 使用详细信息可查看 https://www.cnblogs.com/murry/p/9332747.html

    docker启动报错

    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

    解决:

    systemctl daemon-reload

      systemctl restart docker.service

     二、docker 镜像拉取以及启动

    docker hub 镜像拉取以及查看

    docker pull jaspeen/oracle-11g
    REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
    docker.io/jaspeen/oracle-11g   latest              0c8711fe4f0f        4 years ago         281 MB

    创建宿主机 oracle 安装目录以及数据目录

    mkdir -p /server/oracle
    mkdir -p /server/dpdump

    下载 oracle 并存放于服务器中

    oracle 下载网址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

    [root@centos7 oracle]# ls
    linux.x64_11gR2_database_1of2  linux.x64_11gR2_database_2of2

    解压缩并删除安装包

    [root@centos7 oracle]# ls
    database

    启动 docker

    docker run -d --privileged -p 1521:1521 -v /server/oracle:/install -v /server/dpdump:/opt/oracle/dpdump --name=oracle11g jaspeen/oracle-11g

    启动命令解析:

    -d :后台运行容器,并返回容器ID;

    --privieged:开启特权模式;

    -p:宿主机与 docker 的端口映射;

    -v:绑定一个数据卷;

    --name:起一个容器名;

    启动后查看容器运行状况

    [root@centos7 oracle]# docker ps 
    CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                              NAMES
    c5e913b4e96b        jaspeen/oracle-11g   "/assets/entrypoin..."   3 days ago          Up 3 seconds        0.0.0.0:1521->1521/tcp, 8080/tcp   oracle11g

    此时一个 oracle 11g docker 已经启动

    失败:hecking Temp space: must be greater than 120 MB. Actual 150565 MB Passed

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

    Some requirement checks failed. You must fulfill these requirements before

    continuing with the installation,

    Exiting Oracle Universal Installer, log for this session can be found at /tmp/OraInstall2017-06-07_02-08-39PM/installActions2017-06-07_02-08-39PM.log

    解决方法:

    1、检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。运行以下命令:

    1 swapon -s

    如果返回的信息概要是空的,则表示 Swap 文件不存在。

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

    1 df -hal

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

    1 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

    激活 Swap ,运行命令

    swapon /swapfile

    以上步骤做完,再次运行命令

    swapon -s

    你会发现返回的信息概要:

    1 Filename                Type        Size    Used    Priority
    2 /swapfile               file        524284    0     -1

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

    1 /swapfile          swap            swap    defaults        0 0

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

    1 chown root:root /swapfile 
    2 chmod 0600 /swapfile

    三、自己的 docker 镜像制作

    由于版权问题,拉取下来的 docker 镜像是不包含任何版本的 oracle 的

    故在启动 docker 后,需要创建一个自己的镜像以备使用

    提交 docker 镜像以及查看

    复制代码
    [root@centos7 oracle]# docker commit oracle11g oracle11g-installed
    [root@centos7 oracle]# docker images
    REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
    oracle11g-installed            latest              4a55732efad1        3 days ago          2.83 GB
    docker.io/jaspeen/oracle-11g   latest              0c8711fe4f0f        4 years ago         281 MB
    复制代码

    进入 docker 容器内查看

    一共有两种方式,可以使用容器ID或者使用 docker run 时设置的 name

    [root@centos7 oracle]# docker exec -it c5e913b4e96b bash
    [root@c5e913b4e96b /]# 
    [root@centos7 oracle]# docker exec -it oracle11g bash
    [root@c5e913b4e96b /]# 

    当然,可以设置一个别名,更方便进入容器内

    复制代码
    [root@centos7 oracle]# vim ~/.bashrc 
    末行加入:
    alias oracle='docker exec -it c5e913b4e96b bash'

    使文件生效:
    source ~/.bashrc
    复制代码

    至此一个 oracle 11g 容器制作完成

    更多详细使用方式以及信息、dockerfile 请查看 docker hub:

    https://hub.docker.com/r/jaspeen/oracle-11g

  • 相关阅读:
    淘宝技术架构演进之路
    单点登录
    [c++11] ——条件变量(Condition Variable)
    std::lock_guard unique_lock
    C++中push_back和emplace_back的区别
    C++11 CAS无锁函数compare_exchange_weak的使用
    C++11新特性之 rvalue Reference(右值引用)
    C++ auto和decltype的区别
    ovs contrack
    周总结03
  • 原文地址:https://www.cnblogs.com/wanderwei/p/12377362.html
Copyright © 2011-2022 走看看