docker的安裝和docket拉取Oracle


博客轉載https://blog.csdn.net/qq_38380025/article/details/80647620,https://blog.csdn.net/qq_27039845/article/details/84947345, https://www.cnblogs.com/yufeng218/p/8370670.html  侵刪

 

 

一、安裝docker

1、Docker 要求 CentOS 系統的內核版本高於 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。

通過 uname -r 命令查看你當前的內核版本

 $ uname -r

2、使用 root 權限登錄 Centos。確保 yum 包更新到最新。

$ sudo yum update

3、卸載舊版本(如果安裝過舊版本的話)

$ sudo yum remove docker  docker-common docker-selinux docker-engine

4、安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、設置yum源

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

6、可以查看所有倉庫中所有docker版本,並選擇特定版本安裝

$ yum list docker-ce --showduplicates | sort -r

7、安裝docker

$ sudo yum install docker-ce  #由於repo中默認只開啟stable倉庫,故這里安裝的是最新穩定版17.12.0
$ sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

 

8、啟動並加入開機啟動

$ sudo systemctl start docker
$ sudo systemctl enable docker

9、驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)

$ docker version

 

 

①、開始拉取鏡像-執行命令:

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

下載完成后 查看鏡像: docker images

可以看到已經下載好了

② 、創建容器

docker run -d -p 1521:1521 --name oracle11gregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

這里說一下,命令后面的地址一定要是你下載的鏡像地址也就是你拉取鏡像名字,否則會出現名字已存在等問題!

如果創建成功能會返回容器id

③、啟動容器

docker start oracle11g

④、進入鏡像進行配置

1、 docker exec -it oracle11g bash

 

2、進行軟連接

sqlplus /nolog

發現沒有這個命令,用不了

3、切換到root 用戶下

su root

密碼:helowin

 

4、編輯profile文件配置ORACLE環境變量

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2

export ORACLE_SID=helowin

export PATH=$ORACLE_HOME/bin:$PATH

在最后加上

保存並退出 :wq

5、創建軟連接

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

6、切換到oracle 用戶

這里還要說一下,一定要寫中間的內條 - 必須要,否則軟連接無效


⑤ 、登錄sqlplus並修改sys、system用戶密碼

sqlplus /nolog

conn /as sysdba

 

接着執行下面命令

alter user system identified by system;

alter user sys identified by sys;

也可以創建用戶 create user test identified by test;

並給用戶賦予權限 grant connect,resource,dba to test;

注意了這里的坑開始出現了
當執行修改密碼的時候出現 : database not open

提示數據庫沒有打開,不急按如下操作

輸入:alter database open;

注意了:這里也許還會提示 : ORA-01507: database not mounted

不急!繼續!

=========== 解決方法===========
輸入: alter database mount;

輸入 alter database open;


然后就可執行 修改數據庫密碼的命令了

改完之后輸入:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

刷新下表

exit 是退休sql 軟連接

⑥、使用pl/sql 進行連接

之前我們把端口映射到了1521上,所以我們需要進行配置 tnsnames.ora

docker_oracle11 =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = orcl)
   )
)

打開pl/sql 進行登錄 :提示監聽程序當前無法識別連接描述符中請求的服務

這時我們需要去看一下oracle 的 lsnrctl 服務

看到這兩個了么,任選其一,修改 tnsnames.ora的 service_name=helowinXDB   

docker_oracle11 =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = helowinXDB)
   )
)

歐克,登錄成功。

navicate 連接已經拉取的Oracle

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

(2)創建oracle容器

docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

(3)啟動容器

docker start oracle11g

(4)進入鏡像配置

docker exec -it oralce11g(這個地方可以是容器名也可以是容器id)

 

(5)創建軟連接sqlplus /nolog,此時是無效的 command not found

(6)先切換到root用戶去解決軟連接的問題

切換root用戶,並編輯profile文件

 

[root@a8a161b66e1d /]# vi /etc/profile

在文件末未添加

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2

export ORACLE_SID=helowin

export PATH=$ORACLE_HOME/bin:$PATH

 

這是才真正創建l軟連接

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

su - oracle

conn sys/ as sysdba;

 

alter user sys identified by sys;

alter user system identified by system;

創建用戶

create user dlsys identified by dlsys;

賦予權限

grant connect,resource,dba to dlsys;

(5)配置listener.ora以及 tnsnames.ora

進入oracle用戶的家目錄

輸入 lsnrctl status查看監聽狀態

cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin

目錄下有兩個文件listener.ora以及 tnsnames.ora

用vi編輯這兩個文件修改host為自己的ip

至此就可以用客戶端連接oracle了

 

 

接下來講下怎么導入dmp數據到oracle庫中

(6)將dmp文件上傳到容器中

docker cp syszdb.DMP 容器id:/home/oracle/(注意syszdb.DMP文件放在dockertoolbox的安裝目錄下)

(7)創建一個邏輯目錄並賦予去權限(導入命令的時候需要用到)

查看剛才創建的目錄

(7)創建表空間及用戶

CREATE TABLESPACE "DLGIS"

LOGGING

DATAFILE '/home/oracle/app/oracle/oradata/helowin/DLGIS.ORA' SIZE 400M

REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

 

ALTER DATABASE

DATAFILE '/home/oracle/app/oracle/oradata/helowin/DLGIS.ORA' AUTOEXTEND

ON NEXT 10M MAXSIZE UNLIMITED;

表空間及用戶名創建完后就可以返回到oracle用戶的家目錄

(oracle用戶的家目錄可以通過su root輸入密碼helowin后切換oracle用戶su - oracle)

(8)最后輸入導入命令:(針對expdp的導出命令)

impdp dlsys/dlsys@helowin directory=dir_dump dumpfile=syszdb.dmp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM