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

  • 相关阅读:
    Unix命令大全
    vs2008 与 IE8出现的兼容性问题
    Java 创建文件、文件夹以及临时文件
    如何修改Wamp中mysql默认空密码
    PAT 乙级真题 1003.数素数
    Tags support in htmlText flash as3
    DelphiXE4 FireMonkey 试玩记录,开发IOS应用 还是移植
    10 Great iphone App Review sites to Promote your Apps!
    HTML tags in textfield
    Delphi XE4 IOS 开发, "No eligible applications were found“
  • 原文地址:https://www.cnblogs.com/wanderwei/p/12377362.html
Copyright © 2011-2022 走看看