一、安裝Docker
這里我們使用
Docker Toolbox
來安裝Docker
蛔翅。Docker Toolbox 下載地址-
安裝就不需要我多說了煌张,安裝之后多出3個(gè)應(yīng)用程序。
- 第一個(gè)是
docker
命令行界面倾芝。 - 第二個(gè)是
docker gui
操作界面。 - 第三個(gè)是 虛擬機(jī)箭跳。
- 第一個(gè)是
-
這里我們啟動(dòng)
Docker Quickstart Terminal
該程序會(huì)為我們做以下事項(xiàng)晨另。打開命令控制臺(tái)。
創(chuàng)建
VirtualBox ISO
虛擬機(jī)和證書ssh key
衅码。啟動(dòng)
VirtualBox
并運(yùn)行docker
進(jìn)程拯刁。-
創(chuàng)建
default
的碼頭。 注意:如果你沒有出現(xiàn)上圖藍(lán)色框中的內(nèi)容并且紅色框中什么都沒有逝段,那么說明初始化失敗了垛玻,這時(shí)關(guān)掉這個(gè)命令控制臺(tái),在重新啟動(dòng)一下
Docker Quickstart Terminal
就好了奶躯。
-
啟動(dòng)完畢之后帚桩,你就可以運(yùn)行docker命令了。下面運(yùn)行
hello-world
來校驗(yàn)是否安裝成功嘹黔。docker run hello-world
- 出現(xiàn)圖上的情況說明
Docker
已經(jīng)成功安裝账嚎。
- 出現(xiàn)圖上的情況說明
-
而如果你出現(xiàn)圖下這種情況的話,說明你是在
Mac
終端運(yùn)行的該命令儡蔓,解決方法有兩種郭蕉。- 啟動(dòng)
Docker Quickstart Terminal
在該命令窗口執(zhí)行上述命令。 - 獲取
default
虛擬機(jī)的環(huán)境變量,在連接到default
虛擬機(jī)之后執(zhí)行第四步就沒問題了喂江。
docker-machine env default
eval $(docker-machine env default)![](http://upload-images.jianshu.io/upload_images/5344304-344a4b7869e15eb0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 啟動(dòng)
二召锈、配置Oracle加速器
安裝
Oracle
之前,我們可以給docker配置一個(gè)加速器获询。PS:配不配置都無所謂涨岁,不過配置后等會(huì)你下載Oracle速度應(yīng)該會(huì)快一點(diǎn)拐袜。-
這里我使用的是阿里云提供的加速器。加速器地址
- 點(diǎn)擊加速器梢薪,就可以看到你的專屬加速器地址了蹬铺。
我們可以通過修改daemon配置文件/etc/docker/daemon.json來使用加速器。PS:link是你的專屬加速地址秉撇。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["link"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三甜攀、安裝Oracle
-
執(zhí)行該命令下載
Oracle
鏡像。docker pull alexeiled/docker-oracle-xe-11g
-
啟動(dòng)
Oracle
鏡像畜疾,并命名Oracle
赴邻。docker run -h "oracle" --name "oracle" -d -p 49160:22 -p 49161:1521 -p 49162:8080 alexeiled/docker-oracle-xe-11g
-
查看
Oracle
是否成功安裝印衔。docker ps
- 49160:是連接ssh對(duì)應(yīng)的端口啡捶。
- 49161:是連接sqlplus對(duì)應(yīng)的端口。
- 49162:是連接oem對(duì)應(yīng)的端口奸焙。
-
成功安裝后我們?cè)囋囘B接
Oracle
瞎暑。docker exec -it CID /bin/bash
- 這里的CID是你自己的
CONTAINER ID
,不知道自己的CID的請(qǐng)查看第三步与帆。
* 仔細(xì)看了赌,在執(zhí)行紅色框中的命令后,藍(lán)色區(qū)域的變化玄糟。
- 這里的CID是你自己的
-
進(jìn)入
Oracle
中的root
用戶后勿她,在連接sqlplus
。Oracle有兩個(gè)用戶
sys
和system
默認(rèn)密碼都是oracle
阵翎。-
這里我用
sys
賬戶登錄逢并。- 首先進(jìn)入
sqlplus
sqlplus
2. 執(zhí)行上述命令后,會(huì)提示你輸入賬號(hào)和密碼郭卫,這里有個(gè)注意的地方砍聊!直接上圖講解。
>
3. 上圖第4點(diǎn)另外還有個(gè)注意的地方贰军,就是第一次進(jìn)入sqlplus時(shí)玻蝌,會(huì)提示這個(gè)信息,大意就是密碼將在7天內(nèi)過期词疼。
ERROR: ORA-28002 : the password will expire within 7 days
* 出現(xiàn)上述情況的原因在于Oracle11g
在default profile
中設(shè)定了180 days
俯树。PS:有人肯定會(huì)問這不是180天嗎跟7天有什么關(guān)系,在這里不作詳細(xì)解釋贰盗。
* 具體解決方案等會(huì)使用Intellij IDEA 連接后解決许饿。PS:主要是好操作。 - 首先進(jìn)入
三童太、使用 Intellij IDEA 連接 Oracle 數(shù)據(jù)庫(kù)
隨便創(chuàng)建一個(gè)項(xiàng)目米辐。
-
然后連接Oracle數(shù)據(jù)庫(kù)胸完。
-
配置。
* 這里注意Port
端口是49161翘贮。
*Host
通過docker-machine ip
命令獲取赊窥。
* 最后點(diǎn)擊Test Connection
出現(xiàn)上圖顯示則代表成功連接上Oracle。 -
現(xiàn)在來解決關(guān)于密碼7天過期的問題狸页。
-
首先檢查該用戶的
profile
是哪個(gè)锨能,一般都是DEFAULT
。SQL SELECT username,PROFILE FROM dba_users;
2. 查看該DEFAULT
的密碼有效期配置芍耘。
SQL SELECT * FROM dba_profiles d WHERE d.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3. 將密碼有效期由180天改成無期限址遇。
> SQL ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
-
4. 到這里就已經(jīng)搞定,但是這只是代表了后面用別的用戶登錄不會(huì)出現(xiàn)`ORA-28002`錯(cuò)誤,但之前我們用`sys`用戶登錄該用戶密碼依然會(huì)在7天后過期斋竞,所以只需要我們?cè)谛薷囊淮蚊艽a行了倔约。
> alter user sys identified by 密碼
5. 眼尖的人在第一步發(fā)現(xiàn)我解鎖了`HR`用戶和`SCOTT`用戶,既然都給你們看了坝初,就順便說下怎么解鎖和創(chuàng)建吧浸剩!
1. 解鎖`HR`用戶
* 首先查看用戶名和用戶狀態(tài)
>SQL SELECT username,account_status FROM dba_users ORDER BY username;
* 然后解鎖
HR
用戶
> SQL ALTER USER hr ACCOUNT UNLOCK ;
2. 創(chuàng)建`SCOTT`用戶
* 首先創(chuàng)建用戶
> SQL CREATE USER scott IDENTIFIED BY tiger;
* 然后授權(quán)
>SQL GRANT CONNECT ,RESOURCE ,DBA TO scott;