首先,系統(3.8以上內核的linux)中安裝好 Docker 這個運用程序。因爲網絡緣由,咱們下載一個Docker官方的鏡像須要很長的時間,甚至下載失敗。爲此,阿里雲容器鏡像服務提供了官方的鏡像站點,從而加速官方鏡像的下載速度。 [ 不會的能夠參考我以前的文章:Docker <一> 架構簡介與Linux上安裝 http://www.javashuo.com/article/p-qdsjcbsd-bh.html]。java
# docker search weblogic docker search weblogic # docker search wls docker search wls
能夠看到下圖所示的信息:linux
# pull 鏡像 docker pull -a radudobrinescu/wls12c:5.0
整個pull過程須要花費一些時間,耐心等待。git
若見下圖證實pull成功。 github
# 使用 docker images 命令便可列出已下載的鏡像 docker images
# 普通新建並啓動 docker run --name weblogic12c7099 -it -p 7099:7001 radudobrinescu/wls12c:5.0
一、進入%DOMAIN_HOME%/security目錄,執行下列命令: java -classpath C:\Oracle\Middleware\Oracle_Home\wlserver\server\lib\weblogic.jar weblogic.security.utils.AdminAccount <NewAdminUserName> <NewAdminPassword> . # 本次實際路徑是: java -classpath /oracle/fmwhome/wls12c/wlserver/server/lib/weblogic.jar weblogic.security.utils.AdminAccount weblogic weblogic1 . # 注意:上一段命令包含6個空格,後面weblogic是用戶名,weblogic101是密碼,weblogic控制密碼長度和複雜性。 # 特別注意最後有個「 .」,一個空格和一個點。 # 此命令將生成新的DefaultAuthenticatorInit.ldift文件覆蓋原來的。 二、進入管理服務器的AdminServer目錄,如:%DOMAIN_HOME%/servers/AdminServer。將其中的data目錄重命名, 如:data_old。 本次是: /oracle/fmwhome/domains/WLS12_on_Docker/servers/AdminServer 將data文件夾重命名爲data_old。 三、 修改管理服務器的boot.properties文件,如:%DOMAIN_HOME%/servers/AdminServer/security /boot.properties,修改其中的用戶名與密碼(用明文,第一次啓動服務器時明文將被加密),要和上面命令 中的用戶名密碼一致。 例:修改後: username=weblogic password=weblogic1 四、 從新啓動服務器後,就可使用用戶weblogic登陸管理控制檯了
每一個weblogic server 都是運行在一個java虛擬機上 ,對weblogic的內存設置也就是對java虛擬機的內存設置。 MEM_ARGS=-Xms512m -Xmx1024m -XX:MaxPermSize=128m -Xms512m表示jvm內存下限爲512m -Xmx512m表示jvm內存上限爲1024m -XX:MaxPermSize=128m表示永久內存爲128m 咱們主要設置的爲jvm內存,永久內存設置爲128m或者256m便可。 設置jvm內存時,根據經驗32位機器最大可啓動1.8G內存的jvm,64位機器最大可啓動3G內存的jvm; 而在設置上下限的時候最好將二者設爲一致,以免浪費頻繁的申請和釋放內存的開銷。 ------------------------------------------------------------------------------------------------- 四個步驟便可: 一、打開setDomainEnv.sh文件,該文件的路徑位於: /weblogic/user_projects/domains/你的服務器域名/bin/setDomainEnv.sh 二、修改內存大小 默認的內存配置爲: if [ "${JAVA_VENDOR}" = "Sun" ] ; then WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m" //64位 export WLS_MEM_ARGS_64BIT WLS_MEM_ARGS_32BIT="-Xms256m -Xmx512m" //32位 export WLS_MEM_ARGS_32BIT else WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m" export WLS_MEM_ARGS_64BIT WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m" export WLS_MEM_ARGS_32BIT fi 增長內存大小後: if [ "${JAVA_VENDOR}" = "Sun" ] ; then WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m" //64位 export WLS_MEM_ARGS_64BIT WLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m" //32位 export WLS_MEM_ARGS_32BIT else WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m" export WLS_MEM_ARGS_64BIT WLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m" export WLS_MEM_ARGS_32BIT fi 三、保存修改後的文件,重啓weblogic。 四、從新訪問web應用,測試成功。 五、升級 weblogic2c 的 jdk 運行環境 # 配置新JDK # vi ~/.bash_profile # export JAVA_HOME=/home/oracle/jdk8 # export JRE_HOME=/home/oracle/jdk8/jre # export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH # export PATH=$JAVA_HOME/bin:$PATH vi /oracle/fmwhome/domains/WLS12_on_Docker/bin/setDomainEnv.cmd set SUN_JAVA_HOME=/home/oracle/jdk8 set DEFAULT_SUN_JAVA_HOME=/home/oracle/jdk8 set JAVA_HOME=/home/oracle/jdk8 注意:/home/oracle/jdk8 這是我本機的jdk 位置,要根據您服務器的jdk選擇具體目錄 若是你在安裝weblogic的時候,選擇了本地安裝的jdk位置路徑這一個步驟能夠省略
一、構建Oracle JDK(服務器JRE)基礎映像web
首先,必須先下載Oracle Server JRE二進制文件../OracleJava/java-8並放入文件夾並構建該映像(https://github.com/oracle/docker-images/tree/master/OracleJava)。docker
$ cd ../OracleJava/java-8 $ sh build.sh
· GitHub : https://github.com/oracle/docker-images/tree/master/OracleJava數據庫
二、構建WebLogic Docker安裝映像
重要提示:必須下載WebLogic的二進制.download文件並將其放在適當位置(請參閱dockerfiles /中的文件):https://github.com/oracle/docker-images/tree/master/OracleWebLogic/dockerfiles。bash
在構建以前,選擇要構建映像的版本和分發版本,而後下載所需的軟件包(請參閱.download文件:https://github.com/oracle/docker-images/tree/master/OracleWebLogic/dockerfiles/12.2.1),並將其放入您選擇的分發版本的文件夾中。而後進入dockerfiles文件夾並以root身份運行buildDockerImage.sh腳本。服務器
$ sh buildDockerImage.sh -h Usage: buildDockerImage.sh -v [version] [-d | -g | -i] [-s] Builds a Docker Image for Oracle WebLogic. Parameters: -v: version to build. Required. Choose one of: 12.1.3 12.2.1 -d: creates image based on 'developer' distribution -g: creates image based on 'generic' distribution -i: creates image based on 'infrastructure' distribution -c: enables Docker image layer cache during build -s: skips the MD5 check of packages * select one distribution only: -d, -g, or -i LICENSE UPL 1.0 Copyright (c) 2014-2015 Oracle and/or its affiliates. All rights reserved.
buildDockerImage.sh 文件內容以下:網絡
#!/bin/bash # # Since: October, 2014 # Author: bruno.borges@oracle.com # Description: script to build a Docker image for WebLogic # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. # # Copyright (c) 2014-2015 Oracle and/or its affiliates. All rights reserved. # usage() { cat << EOF Usage: buildDockerImage.sh -v [version] [-d | -g | -i] [-s] [-c] Builds a Docker Image for Oracle WebLogic. Parameters: -v: version to build. Required. Choose one of: $(for i in $(ls -d */); do echo -n "${i%%/} "; done) -d: creates image based on 'developer' distribution -g: creates image based on 'generic' distribution -i: creates image based on 'infrastructure' distribution -c: enables Docker image layer cache during build -s: skips the MD5 check of packages * select one distribution only: -d, -g, or -i LICENSE UPL 1.0 Copyright (c) 2014-2015 Oracle and/or its affiliates. All rights reserved. EOF exit 0 } # Validate packages checksumPackages() { echo "Checking if required packages are present and valid..." md5sum -c Checksum.$DISTRIBUTION if [ "$?" -ne 0 ]; then echo "MD5 for required packages to build this image did not match!" echo "Make sure to download missing files in folder $VERSION. See *.download files for more information" exit $? fi } if [ "$#" -eq 0 ]; then usage; fi # Parameters DEVELOPER=0 GENERIC=0 INFRASTRUCTURE=0 VERSION="12.2.1" SKIPMD5=0 NOCACHE=true while getopts "hcsdgiv:" optname; do case "$optname" in "h") usage ;; "s") SKIPMD5=1 ;; "d") DEVELOPER=1 ;; "g") GENERIC=1 ;; "i") INFRASTRUCTURE=1 ;; "v") VERSION="$OPTARG" ;; "c") NOCACHE=false ;; *) # Should not occur echo "Unknown error while processing options inside buildDockerImage.sh" ;; esac done # Which distribution to use? if [ $((DEVELOPER + GENERIC + INFRASTRUCTURE)) -gt 1 ]; then usage elif [ $DEVELOPER -eq 1 ]; then DISTRIBUTION="developer" elif [ $GENERIC -eq 1 ]; then DISTRIBUTION="generic" elif [ $INFRASTRUCTURE -eq 1 ] && [ "$VERSION" = "12.1.3" ]; then echo "Version 12.1.3 does not have infrastructure distribution available." exit 1 else DISTRIBUTION="infrastructure" fi # WebLogic Image Name IMAGE_NAME="oracle/weblogic:$VERSION-$DISTRIBUTION" # Go into version folder cd $VERSION if [ ! "$SKIPMD5" -eq 1 ]; then checksumPackages else echo "Skipped MD5 checksum." fi echo "=====================" # Proxy settings PROXY_SETTINGS="" if [ "${http_proxy}" != "" ]; then PROXY_SETTINGS="$PROXY_SETTINGS --build-arg http_proxy=${http_proxy}" fi if [ "${https_proxy}" != "" ]; then PROXY_SETTINGS="$PROXY_SETTINGS --build-arg https_proxy=${https_proxy}" fi if [ "${ftp_proxy}" != "" ]; then PROXY_SETTINGS="$PROXY_SETTINGS --build-arg ftp_proxy=${ftp_proxy}" fi if [ "${no_proxy}" != "" ]; then PROXY_SETTINGS="$PROXY_SETTINGS --build-arg no_proxy=${no_proxy}" fi if [ "$PROXY_SETTINGS" != "" ]; then echo "Proxy settings were found and will be used during build." fi # ################## # # BUILDING THE IMAGE # # ################## # echo "Building image '$IMAGE_NAME' ..." # BUILD THE IMAGE (replace all environment variables) BUILD_START=$(date '+%s') docker build --force-rm=$NOCACHE --no-cache=$NOCACHE $PROXY_SETTINGS -t $IMAGE_NAME -f Dockerfile.$DISTRIBUTION . || { echo "There was an error building the image." exit 1 } BUILD_END=$(date '+%s') BUILD_ELAPSED=`expr $BUILD_END - $BUILD_START` echo "" if [ $? -eq 0 ]; then cat << EOF WebLogic Docker Image for '$DISTRIBUTION' version $VERSION is ready to be extended: --> $IMAGE_NAME Build completed in $BUILD_ELAPSED seconds. EOF else echo "WebLogic Docker Image was NOT successfully created. Check the output and correct any reported problems with the docker build operation." fi
本文爲博主原創文章,轉載請註明出處!