日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker容器安装oracle10g

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker容器安装oracle10g 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于工作需要,嘗試了將oracle10g安裝到docker容器當中,中間也是踩了很多坑

宿主機:ubuntu 16.04

docker版本:Server Version: 1.12.1

oracle 10g : 10201_database_linux_x86_64.cpio

基礎鏡像:centos:6.6

1、利用dockerfile先將需要做的前提工作打成鏡像

===============??? dockerfile =============

FROM centos:6.6

USER root
COPY assets /assets
RUN chmod -R 755 /assets && /assets/setup.sh

USER oracle
WORKDIR /home/oracle
ENV PATH=$PATH:$HOME/.local/bin:$HOME/bin:/home/oracle/.local/bin:/home/oracle/bin:/home/oracle/bin:/u01/app/oracle/product/10.2.0/db_1/bin? ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 ORACLE_SID=ora10g LD_LIBRARY_PATH=/u01/app/oracle/product/10.2.0/db_1/lib:/lib:/usr/lib
RUN cpio -idmv < 10201_database_linux_x86_64.cpio

EXPOSE 1521
EXPOSE 8080

============? setup.sh ====================

set -e

source /assets/colorecho
trap "echo_red '******* ERROR: Something went wrong.'; exit 1" SIGTERM
trap "echo_red '******* Caught SIGINT signal. Stopping...'; exit 2" SIGINT

#Install prerequisites directly without virtual package
deps () {

??????? yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat libXp libXt.i686 libXtst.i686
}

# useradd new users for oracle install
users () {

??????? echo "Configuring users"
??????? groupadd -g 1000 oinstall
??????? groupadd -g 1001 dba
??????? useradd -u 1000 -g oinstall -G dba oracle
??????? echo "oracle:oracle" | chpasswd
??????? echo "root:root@123" | chpasswd
}

#makeup new folder for oracle data
folder(){
??????? echo "mkdir new folder for oracle data"

??????? mkdir -p /u01/app/oracle
??????? mkdir -p /u01/app/oracle/product/10.2.0/db_1
??????? mkdir -p /u01/app/oracle/admin/ora10g/{a,b,c,d,u}dump
??????? mkdir -p /u01/app/oracle/oradata/ora10g
??????? mkdir -p /u01/app/oracle/flash_recovery_area

}

# cp the release file
cp_file(){

??????? echo "cp the release file"
? cp /assets/10201_database_linux_x86_64.cpio /home/oracle
??????? cat /assets/profile > home/oracle/.bash_profile
? cp /assets/install.sh /home/oracle
??????? cp /assets/oraInst.loc /etc/
??????? cp /assets/enterprise.rsp /home/oracle/
??????? cp /assets/sysctl.conf /etc/sysctl.conf
? #cat /assets/limits.conf >> /etc/security/limits.conf

}

#replace the owner
ower(){
??????? echo "replace the owner"
??????? chown -R oracle:oinstall /u01
??????? chown -R oracle:oinstall /home/oracle
??????? chown oracle:oinstall /etc/oraInst.loc
??????? chmod 664 /etc/oraInst.loc
??????? chmod 777 /tmp
}

deps
users
folder
cp_file
ower

2、將上面的dockerfile打成一個基礎鏡像,簡稱為a-images

3、docker run -ti --privileged? a-images bash? 運行容器

4、在容器當中手動安裝oracle ,利用腳本進行靜默安裝

???? /home/oracle/database/runInstaller -silent -ignoreSysPrereqs -waitforcompletion? -responseFile /home/oracle/enterprise.rsp

5、將安裝有oracle的a-images的容器? ,通過docker commit -p 生成一個新的鏡像,這個新的鏡像就是包含完成oracle的鏡像。


總結

以上是生活随笔為你收集整理的docker容器安装oracle10g的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。