環(huán)境:Centos7.6(理論上Centos7.X 64都可以)
1.安裝Docker
(1)yum 包更新到最新
sudo yum update
(2)安裝需要的軟件包暖释,?yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)設置yum源為阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安裝docker
sudo yum install docker-ce
(5)啟動docker
service docker start
2.上傳oracle安裝包到服務器解壓(Oracle11.2.0.4)
下載鏈接:https://pan.baidu.com/s/1BZ6HEblZrB4Oy7s5BPYYnw提取碼:z2ea
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
3.安裝oracle 11g鏡像到docker
docker pull jaspeen/oracle-11g
4.啟動鏡像(執(zhí)行安裝oracle)
docker run --privileged --name oracle11g -p 1521:1521 -v /home:/install jaspeen/oracle-11g
--docker run 啟動容器的命令
--privileged 給這個容器特權仁堪,安裝oracle可能需要操作需要root權限的文件或目錄
--name 給這個容器名一個名字
--p 映射端口
--v 掛在文件到容器指定目錄 (/home 對應容器?/install/database)
--jaspeen/oracle-11g 代表啟動指定的容器
*注意到日志里有?100% complete?打印,代表oracle安裝成功
5.連接到Oracle容器
docker exec -it oracle11g /bin/bash
6.切換到oracle用戶填渠,然后成功連接到sql控制臺(END)
su - oracle
sqlplus / as sysdba?
*踩坑填坑:
一枝笨、安裝日志輸出Checking swap space: 0 MB available, 150 MB required. Failed
解決方案:https://jingyan.baidu.com/article/da1091fb032cad027949d64e.html
二、安裝日志輸出[FATAL] [INS-10105] The given response file /assets/db_install.rsp is not valid.
解決方案:http://www.reibang.com/p/e6fbceb00f9e
三揭蜒、Docker部署Oracle后不會生成監(jiān)聽文件横浑,使用的系統(tǒng)默認監(jiān)聽。需要手動自己配置監(jiān)聽文件到/opt/oracle/app/product/11.2.0/dbhome_1/network/admin目錄
注意:配置中HOST的IP不是服務器的IP填寫為Docker容器的IP
#listener.ora文件配置
LISTENER =
? (DESCRIPTION_LIST =
? ? (DESCRIPTION =
? ? ? (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
? ? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.0.2)(PORT = 1521))
? ? )
? )
SID_LIST_LISTENER =
(SID_LIST =
? (SID_DESC =
? (GLOBAL_DBNAME = orcl)
? (SID_NAME = orcl)
? )
)
ADR_BASE_LISTENER = /opt/oracle/app
#sqlnet.ora 文件配置
configuration tools. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /opt/oracle/app
#? tnsnames.ora文件配置
LISTENER_ORCL =
? (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.0.2)(PORT = 1521))
ORCL =
? (DESCRIPTION =
? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.0.2)(PORT = 1521))
? ? (CONNECT_DATA =
? ? ? (SERVER = DEDICATED)
? ? ? (SERVICE_NAME = orcl)
? ? )
? )