- 操作系統:centOS9
- 使用此方法檢查是否安裝Docker:
docker --help
,如果有幫助文件則證明安裝成功 - 使用此語句檢查Docker是否正在運行:
docker images
,實際上是查看本地鏡像 - 如果發現未運行則開啟Docker:
systemctl start docker
- 查看正在運行的服務:
systemctl list-units --type=service
可能用到的命令:設置Docker自啟:systemctl enable docker.service
查看自啟動的項目:systemctl list-unit-files | grep enable
開始安裝:
- 拉取鏡像:
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
- 查看鏡像:
docker images
-
為了保證Docker實例停止后數據不會丟失,故需要數據持久化,需要創建數據卷,此處名為oracle_vol
創建數據卷:docker volume create oracle_vol
查看數據卷:docker volume ls
刪除數據卷:docker volume rm oracle_vol -
數據卷(Data Volume)是Docker中用于持久化數據的一種方法,它可以在容器內部創建一個或多個目錄,將主機文件系統中的文件或目錄掛載到容器中。數據卷是獨立于容器生命周期的,即使容器被刪除,數據卷也不會被自動刪除。
文件映射(File Mapping)是通過使用-v或--mount選項將主機上的文件或目錄映射到容器中的一種方法。與數據卷相比,文件映射不提供數據持久化的功能,容器刪除時,映射的主機文件可能還會保留在主機上,但對容器來說就像是被刪除了一樣。
數據卷和文件映射的主要區別:
持久化:數據卷提供持久化,即使容器刪除,數據還會保留;文件映射則不提供持久化。
主機修改:數據卷中的內容可以在容器外部修改;文件映射的內容可以在主機上修改,并會立即反映到容器內。
構建容器映射:數據卷通常在容器構建時指定,不能在docker run命令中指定;文件映射可以在docker run命令中指定,也可以在docker-compose文件中指定。 -
運行鏡像,創建容器:docker run -itd \
-p 1521:1521 \
--name oracle \
--restart=always \
--mount source=oracle_vol,target=/home/oracle/app/oracle/oradata \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g - 查看容器:
docker ps -a
-
進入容器配置Oracle-11g環境
- 進入容器環境:
docker exec -it oracle bash
- 切換至root用戶,當前為oracle用戶,啟動鏡像時系統創建的:
su root
,密碼helowin - 編輯環境變量:
vi /etc/profile,追加如下內容。docker中的profile文件不支持中文,暫時未解決。
- # oracle home目錄
export ORACLE_HOME=/home/oracle/app/oracle/prouct/11.2.0/dbhome_2 ??
# oracle 服務名或者 SID名,要記住這個名字helowin,它是naivcat或者DBeaver登錄的重要選項
export ORACLE_SID=helowin ? ??
# oracle環境變量
export PATH=$ORACLE_HOME/bin:$PATH
? - 編輯完保存后,使環境變量生效:
source /etc/profile
- 創建軟連接:
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
- 切換回oracle用戶:
su - oracle
,中間有減號 - sqlplus修改sys、system用戶密碼
-
sqlplus /nolog ? # 登錄
# 以下是SQL
conn /as sysdba
alter user system identified by system; -- 修改system用戶賬號密碼為system;
alter user sys identified by sys; -- 修改sys用戶賬號密碼為sys;
? -
- 添加遠程用戶,遠程登錄參數如下
- SID:helowin
- User:test
- Password:test
- create user test identified by test; -- 創建內部管理員賬號密碼;
grant connect,resource,dba to test; -- 將dba角色授權給內部管理員賬號和密碼;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; -- 設置密碼永不過期
alter system set processes=1000 scope=spfile; -- 修改數據庫最大連接數
? - 保存并重啟數據庫? ?conn /as sysdba; -- 保存數據庫
shutdown immediate; -- 關閉數據庫
startup; -- 啟動數據庫
show user; - 遠程連接,使用navicat進行連接