在MAC上運行Docker和Oracle 12.2數(shù)據(jù)庫環(huán)境
雖然Docker是那么的流行和熱鬧,可是沒想到我和Docker的***次接觸是因為Oracle。Oracle在上個月宣布支持Docker的容器部署,再加上Oracle Database 12.2的發(fā)布,再到支持MAC上的部署,大家可以想一想這足以激起我動手的熱情,上一次在MAC上能夠直接部署的版本還是Oracle 10g,現(xiàn)在我們有了一個新的選擇。
基于Docker的部署簡單到只需要一個命令,回顧一下我們在Oracle 8的年代,在Linux上部署Oracle,你想到什么?無數(shù)的編譯錯誤,深深淺淺的坑坑洼洼,說多了都是淚。
看看Oracle在Docker上的部署吧!需要準(zhǔn)備什么呢?
- Docker 環(huán)境下載;
- 從Github上下載 Oracle docker-images ;
- 從OTN下載 Oracle for Linux 的安裝包;
生產(chǎn)資料具備了,還要做一點點粗加工:
- 在MAC上安裝并啟動Docker環(huán)境;
- 解壓docker-images-master.zip安裝包;
- 將Oracle安裝包整合到Docker images Master中;
我在Docker市場下載的穩(wěn)定版本,115.6M,地址是:
https://store.docker.com/editions/community/docker-ce-desktop-mac
雖然是***次,但是看到這條小鯨魚還是會很親切:
第二和第三步,我建立了一個獨立的Docker目錄存儲這些文件。
Github 上的文件下載地址是:
https://github.com/oracle/docker-images
然后兩個命令:
- unzip docker-images-master.zip
- mv linuxx64_12201_database.zip docker-images-master/OracleDatabase/dockerfiles/12.2.0.1/
接下來就可以擼起袖子加油干了,當(dāng)然也可以不擼袖子,因為會非常順利和流暢,我的MAC版本是:macOS sierra 10.12.4 。
這個環(huán)節(jié)就只需要一條命令,需要執(zhí)行 docker-images-master/OracleDatabase/dockerfiles 下的build腳本:
- ./buildDockerImage.sh -v 12.2.0.1 -e
在這個步驟中首先需要安裝 OEL的 Slim 版本:oraclelinux:7-slim 。需要從網(wǎng)上下載文件,所以安裝過程中必須保持網(wǎng)絡(luò)的連通。整個過程有16個步驟,全部是自動執(zhí)行的。
成功的日志類似如下的:
- Oracle Database Docker Image for 'ee' version 12.2.0.1 is ready to be extended:
- --> oracle/database:12.2.0.1-ee
- Build completed in 52755 seconds.
完成了安裝之后,你擁有了兩個鏡像,一個是OEL 7-slim 版本,大約114MB,一個 oracle/database 大約14.8GB。
創(chuàng)建并啟動數(shù)據(jù)庫只需要一個命令:
- docker run --name oracle -p 1521:1521 -p 5500:5500 -v /Users/eygle/oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee
這個命令有幾個主要參數(shù):
-p 指定端口映射,主機到Docker的端口對應(yīng);
-v 指定數(shù)據(jù)庫的對應(yīng)存儲路徑,我指定了一個Docker之外的本地存儲,將數(shù)據(jù)庫獨立出來。
完成這個命令,會在本地完成數(shù)據(jù)庫的構(gòu)建并啟動數(shù)據(jù)庫,同時輸出告警日志的監(jiān)控。
當(dāng)然如果你不想剝離數(shù)據(jù)庫文件出來,也可以用類似以下命令來構(gòu)建數(shù)據(jù)庫:
- docker run -p 1521:1521 --name eygle oracle/database:12.2.0.1-ee
由于數(shù)據(jù)庫缺省會指定用戶口令,所以我們可以通過如下命令來修改口令:
- docker exec oracle ./setPassword.sh youpassword
其他的必備命令是:
- docker start oracle
- docker stop oracle
- docker logs oracle
- docker ps
接下來就可以在 SQL Developer 里配置和連接這個數(shù)據(jù)庫了:
現(xiàn)在基于Docker來構(gòu)建一個測試環(huán)境,變得非常快速和簡捷,大家簡化了學(xué)習(xí)了了解Oracle入門的復(fù)雜度,非常值得嘗試。