登录docker商店获取Oracle Database和Weblogic的镜像
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: code501
Password:
如果出现:Login Succeeded则登录成功
如果出现:Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password(失败)
解决方法:
# docker pull 10.128.222.245:5000/database-enterprise:12.2.0.2
下载成功:
#docker pull 10.128.222.245:5000/database-enterprise:12.2.0.2 12.2.0.2: Pulling from database-enterprise Digest: sha256:4a6ce8480d5e0aa0dd798564a5340fbfc45033a26468745482457d92008195a1 Status: Downloaded newer image for 10.128.222.245:5000/database-enterprise:12.2.0.2
使用docker run命令运行容器,-p参数是将容器端口映射到外部,--name 指定容器的名称。指定容器名称可以通过该名称引用该容器,而不是通过它随机生成的id。
查看本地镜像
$ docker images
运行(点击跳转):
####################################################################
## Copyright(c) Oracle Corporation 1998,2016. All rights reserved.##
## ##
## Docker OL7 db12c dat file ##
## ##
####################################################################
##------------------------------------------------------------------
## Specify the basic DB parameters
##------------------------------------------------------------------
## db sid (name)
## default : ORCL
## cannot be longer than 8 characters
DB_SID=OraDoc
## db passwd
## default : Oracle
DB_PASSWD=LetsDocker
## db domain
## default : localdomain
DB_DOMAIN=my.domain.com
## db bundle
## default : basic
## valid : basic / high / extreme
## (high and extreme are only available for enterprise edition)
DB_BUNDLE=basic
## end
$ docker run -d --env-file ./db_env.dat -p 1527:1521 -p 5507:5500 -it --name dockerDB --shm-size="8g" store/oracle/database-enterprise:12.1.0.2
注:
$ docker run -d --env-file -p :1521 -p :5500 -it --name --shm-size=""
Parameters:
is the path to the environment file you created using above example.
is the port on host machine to map the container's 1521 port (listener port).
is the port on host machine to map the container's 5500 port (http service port).
is the container name you want to create.
is the memory size for the container to run. The minimum requirement is 4GB (--shm-size="4g").
is the image that you use to create a container.
进入容器:
$ docker exec -it /bin/bash
第一次构建数据库大约需要5至8分钟,日志保存在容器内的/home/oracle/setup/log文件中 检查数据库设置是否成功,检查日志文件“ /home/oracle/setup/log/setupDB.log”。如果显示“is shown, the database setup was successful.”,则数据库安装成功。启动日志“/home/oracle/setup/log/startupDB.log”
新建setPassword.sh文件
#!/bin/bash
# LICENSE CDDL 1.0 + GPL 2.0
#
# Copyright (c) 1982-2016 Oracle and/or its affiliates. All rights reserved.
#
# Since: November, 2016
# Author: [email protected]
# Description: Sets the password for sys, system and pdb_admin
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
#
ORACLE_PWD=$1
ORACLE_SID="`grep $ORACLE_HOME /etc/oratab | cut -d: -f1`"
ORACLE_PDB="`ls -dl $ORACLE_BASE/oradata/$ORACLE_SID/*/ | grep -v pdbseed | awk '{print $9}' | cut -d/ -f6`"
ORAENV_ASK=NO
source oraenv
sqlplus / as sysdba << EOF
ALTER USER SYS IDENTIFIED BY "$ORACLE_PWD";
ALTER USER SYSTEM IDENTIFIED BY "$ORACLE_PWD";
ALTER SESSION SET CONTAINER=$ORACLE_PDB;
ALTER USER PDBADMIN IDENTIFIED BY "$ORACLE_PWD";
exit;
EOF
例:将密码更改为:LetsDocker
$ docker exec my_db ./setPassword.sh LetsDocker
webloggic镜像已经从docker商店下载并上传到了私有仓库(10.128.222.245)中
$ docker pull 10.128.222.245:5000/store/oracle/weblogic:12.2.1.2
将12212-oradb-medrec文件夹上传到本地,并下载”fmw_12.2.1.2.0_wls_supplemental_quick_Disk1_1of1.zip“文件到该目录下。
设置Oracle Thin XA驱动程序,数据库URL,用户和密码以连接到我们之前创建的Oracle数据库容器
domainname=medrec
domainhome=/u01/oracle/wlserver/samples/domains/medrec
admin_name=MedRecServer
dsname=MedRecGlobalDataSourceXA
dsdbname=ORCLCDB
dsjndiname=jdbc/MedRecGlobalDataSourceXA
dsdriver=oracle.jdbc.xa.client.OracleXADataSource
dsurl=jdbc:oracle:thin:@//OracleDatbaseIP:1521/ORCLCDB
dsusername=system
dspassword=LetsDocker
dstestquery=SELECT * FROM DUAL
dsmaxcapacity=1
运行Docker images命令查看本地镜像的weblogic的REPOSITORY
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.128.222.245:5000/store/oracle/weblogic 12.2.1.2 0f56fc2fbf56 3 weeks ago 1.12 GB
10.128.222.245:5000/store/oracle/database-enterprise 12.1.0.2 9410a79c6531 3 weeks ago 5.27 GB
编辑Dockerfile并将FROM行改为:10.128.222.245:5000/store/oracle/weblogic
进入"12212-oradb-medrec"文件夹,并运行:
$ docker build -t 12212-oradb-medrec .
镜像构建完成后使用docker images查看本地镜像,会发现多了一个"12212-oradb-medrec"镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
12212-oradb-medrec latest f32f0488dffd 6 hours ago 1.5 GB
10.128.222.245:5000/store/oracle/weblogic 12.2.1.2 0f56fc2fbf56 3 weeks ago 1.12 GB
10.128.222.245:5000/store/oracle/database-enterprise 12.1.0.2 9410a79c6531 3 weeks ago 5.27 GB
$ docker run -d -it -p 7011:7011 12212-oradb-medrec
查看运行进度并获取容器的IP地址
$ docker logs -f
通过http://10.128.222.247:7011/console,来验证Oracle database。
账号:weblogic
密码:welcome1
验证Weblogic应用
地址:http://10.128.222.247:7011/medrec/