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