1. 程式人生 > >Linux環境下在docker中配置Oracle資料庫並實現資料持久化

Linux環境下在docker中配置Oracle資料庫並實現資料持久化

一  CentOs安裝docker

前置條件:

64-bit 系統

kernel 3.10+

作者以下操作皆在root使用者下進行

1.檢查核心版本,返回的值大於等於3.10即可。

  # uname -r

2.確保yum是最新的

  # yum update

3.新增 yum 倉庫

tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

4.安裝 Docker

  # yum install -y docker-engine

安裝成功後,使用docker version命令檢視是否安裝成功,安裝成功後------如下圖

5.啟動docker

  #systemctl start docker.service

6.驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)

使用docker version命令檢視

7.設定開機自啟動

 # sudo systemctl enable docker

到此為止docker就完全安裝好了。

二  docker配置Oracle資料庫並實現資料持久化

本次配置的為Oracle 11gr2版本資料庫

  • 在docker 中獲取oracle映象資訊

# docker search oracle

  • 選定映象,並pull到系統中,一定要先配置加速,不然超級慢
  • 友情提示(至少作者遇見的情況是這樣)
  • 一定要選sath89/oracle-xe-11g 不要選wnameless/oracle-xe-11g
  • 一定要選sath89/oracle-xe-11g 不要選wnameless/oracle-xe-11g
  • 一定要選sath89/oracle-xe-11g 不要選wnameless/oracle-xe-11g
  • 不然無法實現資料持久化

docker pull sath89/oracle-xe-11g

  • 檢視已經下載的映象

$ docker images

  • 列出執行中的容器

[[email protected]_0_3_centos ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS 

  • 資料持久化

#啟動

[[email protected]_0_3_centos ~]# docker run -d -p 49160:22 -p 49161:1521 -v /jie:/u01/app/oracle/ --name xe  sath89/oracle-xe-11g
#引數 -d 後臺執行容器,並返回容器ID ; -p 指定埠 , -v 指定資料卷位置

#你只需要明白 -v 命令後面的就ok /jie 指定你當前伺服器的檔案位置 沒有會建立 /u01

/app/oracle指定oracle的對映路徑 也就是說 資料庫中這個目錄下的檔案都會在你伺服器/jie中存在 反之亦然

#檢視執行容器

[[email protected]_0_3_centos ~]# docker ps
CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS              PORTS                                                      NAMES
26a0507505c8        sath89/oracle-xe-11g   "/entrypoint.sh "   20 hours ago        Up 14 seconds       8080/tcp, 0.0.0.0:49160->22/tcp, 0.0.0.0:49161->1521/tcp   xe

#檢視本地目錄 發現有個jie目錄

#建立檔案測試

[[email protected]_0_3_centos jie]# sudo touch jie.txt

#檢視容器內的內容是否新增

[[email protected]_0_3_centos jie]# docker exec -it xe /bin/bash

連線Oracle 11g

--使用此映象建立的oracle使用者和密碼: 

hostname:localhost

port: 49161

sid: xe

service name: xe

username: system

password: oracle