環境:騰訊雲
一. 由於騰訊雲直接下載oracle太慢,先安裝docker
1.sudo apt update
2.接下來,使用apt
安裝一些允許通過HTTPS才能使用的軟件包:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
3.然后將官方Docker存儲庫的GPG密鑰添加到您的系統:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
4. 將Docker存儲庫添加到APT源:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
5.接下來,使用新添加的repo源中的Docker包更新包數據庫:
sudo apt update
6.確保您要從Docker repo安裝而不是默認的Ubuntu repo:
apt-cache policy docker-ce
7.安裝Docker:
sudo apt install docker-ce
8. sudo service docker start
9. sudo docker run hello-world //測試docker安裝
4.鏡像加速
鑒於國內網絡問題,后續拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,我使用的是網易的鏡像地址:http://hub-mirror.c.163.com。
DOCKER_OPTS="--registry-mirror=https://mirror.ccs.tencentyun.com"
sudo echo"DOCKER_OPTS=\"--registry-mirror=http://hub-mirror.c.163.com\"">>/etc/default/docker
sudo echo "DOCKER_OPTS=\"--registry-mirror=https://docker.mirrors.ustc.edu.cn\"" >> /etc/default/docker
sudo echo"DOCKER_OPTS=\"
--registry-mirror=https://mirror.ccs.tencentyun.com
\"">>/etc/default/docker
5. sudo systemctl daemon-reload //刷新daemon
6.sudo service docker restart //重啟docker
二.利用docker 安裝oracle數據庫
1.sudo docker search oracle //搜索可用版本
2.拉取oracle
docker pull oracleinanutshell/oracle-xe-11g
3.查看已下載到計算機的鏡像
sudo docker images R
4.運行Docker容器
ubuntu docker 安裝 oracle
1、ubuntu 安裝docker
sudo apt-get update
sudo apt-get docker.io
2、docker下載oracle鏡像
docker pull oracleinanutshell/oracle-xe-11g
下載完成后,查看鏡像
sudo docker images
3.運行
docker run -d -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g
root@jiang:/home/ubuntu# docker run -d -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g f096e625bcd3a3f9c710710f21e4a93aa4420b0b5ea39880ff6709bbe633a8a1 root@jiang:/home/ubuntu# docker logs -f f096e625bcd3a3f9c710710f21e4a93aa4420b0b5ea39880ff6709bbe633a8a1 Starting Oracle Net Listener. Starting Oracle Database 11g Express Edition instance.
4.進入容器
docker exec -it 容器ID /bin/bash
root@jiang:/home/ubuntu# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f096e625bcd3 oracleinanutshell/oracle-xe-11g "/bin/sh -c '/usr/sb…" About a minute ago Up About a minute 22/tcp, 8080/tcp, 0.0.0.0:1521->1521/tcp compassionate_lamport root@jiang:/home/ubuntu# docker exec -it f096e625bcd3 /bin/bash root@f096e625bcd3:/#
可以用netstat -nlpt查看服務
5.啟動oracle
1)進入oracle 目錄
cd /u01/app/oracle/product/11.2.0/xe/
2) 登錄數據庫
輸入bin/sqlplus sys/system@localhost as sysdba后按提示輸入賬號秘密
3)輸入show parameter service_names; 查看用戶
后面的操作沒有成功
三. 拷貝oracle 到主機
1.拷貝文件
docker cp c0f01126c527:/u01/app/ /home/
cp -r /home/app/ /u01/
2.修改/etc/profile
3.啟動 sqlplus sys/system@localhost as sysdba
啟動時報錯
1). sqlplus: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
安裝 sudo apt-get install libaio-dev
2). 報錯端口沒有監聽
I. 修改 vim /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora 將端口改為服務器Ip
II. set oracle_sid=xe
3. 修改了可以用sqlplus /nolog登錄
待續