2019独角兽企业重金招聘Python工程师标准>>>
首先,系统(3.8以上内核的linux)中安装好 Docker 这个运用程序。由于网络原因,我们下载一个Docker官方的镜像需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务提供了官方的镜像站点,从而加速官方镜像的下载速度。 [ 不会的可以参考我之前的文章:Docker <一> 架构简介与Linux上安装 https://my.oschina.net/u/3375733/blog/1582281]。
一、Docker pull 方式安装 weblogic12c
1、查看docker仓库中的 weblogic12c 命令
# docker search weblogic
docker search weblogic
# docker search wls
docker search wls
可以看到下图所示的信息:
2、为选定需要pull到系统中的数据库镜像
# pull 镜像
docker pull -a radudobrinescu/wls12c:5.0
整个pull过程需要花费一些时间,耐心等待。
若见下图证明pull成功。
3、使用 docker images 命令即可列出已下载的镜像
# 使用 docker images 命令即可列出已下载的镜像
docker images
3、使用 docker run 启动
# 普通新建并启动
docker run --name weblogic12c7099 -it -p 7099:7001 radudobrinescu/wls12c:5.0
4、忘记访问控制台的用户名或者密码,可通过以下步骤来重置用户名密码
1、进入%DOMAIN_HOME%/security目录,执行下列命令:
java -classpath C:\Oracle\Middleware\Oracle_Home\wlserver\server\lib\weblogic.jar
weblogic.security.utils.AdminAccount .
# 本次实际路径是:
java -classpath /oracle/fmwhome/wls12c/wlserver/server/lib/weblogic.jar
weblogic.security.utils.AdminAccount weblogic weblogic1 .
# 注意:上一段命令包含6个空格,后面weblogic是用户名,weblogic101是密码,weblogic控制密码长度和复杂性。
# 特别注意最后有个“ .”,一个空格和一个点。
# 此命令将生成新的DefaultAuthenticatorInit.ldift文件覆盖原来的。
2、进入管理服务器的AdminServer目录,如:%DOMAIN_HOME%/servers/AdminServer。将其中的data目录重命名,
如:data_old。
本次是:
/oracle/fmwhome/domains/WLS12_on_Docker/servers/AdminServer
将data文件夹重命名为data_old。
3、 修改管理服务器的boot.properties文件,如:%DOMAIN_HOME%/servers/AdminServer/security /boot.properties,修改其中的用户名与密码(用明文,第一次启动服务器时明文将被加密),要和上面命令
中的用户名密码一致。
例:修改后:
username=weblogic
password=weblogic1
4、 重新启动服务器后,就可以使用用户weblogic登录管理控制台了
5、weblogic 12c 配置jvm的内存大小
每个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;
而在设置上下限的时候最好将两者设为一致,以避免浪费频繁的申请和释放内存的开销。
-------------------------------------------------------------------------------------------------
四个步骤即可:
1、打开setDomainEnv.sh文件,该文件的路径位于:
/weblogic/user_projects/domains/你的服务器域名/bin/setDomainEnv.sh
2、修改内存大小
默认的内存配置为:
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
3、保存修改后的文件,重启weblogic。
4、重新访问web应用,测试成功。
5、升级 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位置路径这一个步骤可以省略
二、Dockerfile 方式安装 weblogic12c
1、构建Oracle JDK(服务器JRE)基础映像
首先,必须先下载Oracle Server JRE二进制文件../OracleJava/java-8并放入文件夹并构建该映像(https://github.com/oracle/docker-images/tree/master/OracleJava)。
$ cd ../OracleJava/java-8
$ sh build.sh
· GitHub : https://github.com/oracle/docker-images/tree/master/OracleJava
2、构建WebLogic Docker安装映像
重要提示:必须下载WebLogic的二进制.download文件并将其放在适当位置(请参阅dockerfiles /中的文件):https://github.com/oracle/docker-images/tree/master/OracleWebLogic/dockerfiles。
在构建之前,选择要构建映像的版本和分发版本,然后下载所需的软件包(请参阅.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: [email protected]
# 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
三、使用 Docker Compose 轻松高效管理容器
本文为博主原创文章,转载请注明出处!
https://my.oschina.net/u/3375733/blog/