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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM