获取并解压 oracle docker-images
下载地址:
yum install -y git
git clone https://github.com/oracle/docker-images.git
获取 oracle 19c 的安装包
下载地址:
# 将下载的 linux.x64_193000_db_home.zip 安装包放到以下对应版本的目录下面
# pwd
/root/docker-images-main/oracledatabase/singleinstance/dockerfiles
# ll
total 28
drwxr-xr-x. 2 root root 126 apr 11 07:00 11.2.0.2
drwxr-xr-x. 2 root root 4096 apr 11 07:00 12.1.0.2
drwxr-xr-x. 2 root root 4096 apr 11 07:00 12.2.0.1
drwxr-xr-x. 2 root root 4096 apr 11 07:00 18.3.0
drwxr-xr-x. 2 root root 140 apr 11 07:00 18.4.0
drwxr-xr-x. 2 root root 4096 apr 11 07:00 19.3.0 #<<<<<<<<<<<<<<<<<<<<<
drwxr-xr-x. 2 root root 4096 apr 11 07:00 21.3.0
-rwxr-xr-x. 1 root root 7091 apr 11 07:00 buildcontainerimage.sh
# mv /opt/linux.x64_193000_db_home.zip /root/docker-images-main/oracledatabase/singleinstance/dockerfiles/19.3.0
buildcontainerimage 构造镜像,也就是安装软件
- buildcontainerimage.sh 脚本的帮助信息
- 参考文档:
[root@docker dockerfiles]# ./buildcontainerimage.sh --help
./buildcontainerimage.sh: illegal option -- -
usage: buildcontainerimage.sh -v [version] -t [image_name:tag] [-e | -s | -x] [-i] [-o] [container build option]
builds a container image for oracle database.
parameters:
-v: version to build
choose one of: 11.2.0.2 12.1.0.2 12.2.0.1 18.3.0 18.4.0 19.3.0 21.3.0
-t: image_name:tag for the generated docker image
-e: creates image based on 'enterprise edition'
-s: creates image based on 'standard edition 2'
-x: creates image based on 'express edition'
-i: ignores the md5 checksums
-o: passes on container build option
* select one edition only: -e, -s, or -x
license upl 1.0
米乐app官网下载 copyright (c) 2014,2021 oracle and/or its affiliates.
- 构造示例
# ./buildcontainerimage.sh -v 19.3.0 -e -i
... ...
successfully built 0f5efdb488d8
successfully tagged oracle/database:19.3.0-ee
oracle database container image for 'ee' version 19.3.0 is ready to be extended:
--> oracle/database:19.3.0-ee
build completed in 951 seconds.
- 查看
# docker image ls
repository tag image id created size
oracle/database 19.3.0-ee 0f5efdb488d8 5 minutes ago 6.54gb
docker run 安装数据库
- docker run 的参考文档:
- 创建一个持久化数据的目录
mkdir -p /docker_data/oracle chmod -r a rwx /docker_data/oracle/
- docker run 的格式
docker run --name \
-p :1521 -p :5500 \
-e oracle_sid= \
-e oracle_pdb= \
-e oracle_pwd= \
-e init_sga_size=in mb> \
-e init_pga_size=in mb> \
-e oracle_edition= \
-e oracle_characterset=set> \ # al32utf8 or zhs16gbk
-e enable_archivelog=true \
-v [:]/opt/oracle/oradata \
-v [:]/opt/oracle/scripts/startup \
-v [:]/opt/oracle/scripts/setup
oracle/database:19.3.0-ee
- docker run 的示例
docker run --name ora19c \
-p 1521:1521 \
-e oracle_sid=orcl \
-e oracle_pdb=pdbtt \
-e oracle_pwd=oracle \
-e init_sga_size=512 \
-e init_pga_size=128 \
-e oracle_edition=enterprise \
-e oracle_characterset=zhs16gbk \
-e enable_archivelog=true \
-v /docker_data/oracle:/opt/oracle/oradata \
oracle/database:19.3.0-ee
- 查看
# docker ps
# docker exec -it ora19c bash
[oracle@c763a21ec3ec ~]$ lsnrctl status
[oracle@c763a21ec3ec ~]$ export oracle_sid=orcl
[oracle@c763a21ec3ec ~]$ sqlplus / as sysdba
sql*plus: release 19.0.0.0.0 - production on sat apr 16 13:22:51 2022 version 19.3.0.0.0
米乐app官网下载 copyright (c) 1982, 2019, oracle. all rights reserved.
connected to:
oracle database 19c enterprise edition release 19.0.0.0.0 - production
version 19.3.0.0.0
sql> show pdbs;
con_id con_name open mode restricted
---------- ------------------------------ ---------- ----------
2 pdb$seed read only no
3 pdbtt read write no
sql> create table tt (id int);
sql> insert into tt values (11);
sql> commit;
管理 oracle 容器
- 关闭容器
[root@docker ~]# docker stop ora19c
- 启动容器
[root@docker ~]# docker start ora19c
# 数据持久化
sql> select * from tt;
id
----------
11
- docker 宿主机安装 oracle 客户端
客户端下载地址:
rpm -ivh oracle-instantclient19.12-basic-19.12.0.0.0-1.x86_64.rpm rpm -ivh oracle-instantclient19.12-devel-19.12.0.0.0-1.x86_64.rpm rpm -ivh oracle-instantclient19.12-jdbc-19.12.0.0.0-1.x86_64.rpm rpm -ivh oracle-instantclient19.12-sqlplus-19.12.0.0.0-1.x86_64.rpm
- 配置客户端的环境变量
# vi /etc/profile
export nls_lang=american_america.zhs16gbk
export tns_admin=/usr/lib/oracle/19.12/client64/network/admin
export oracle_home=/usr/lib/oracle/19.12/client64
export path=$oracle_home/bin:$path
export ld_library_path=$oracle_home/lib:$ld_library_path
# source /etc/profile
- 客户端连接 oracle pdb
[oracle@ora11g ~]$ sqlplus sys/oracle@192.168.0.40:1521/pdbtt as sysdba
- 在 pdb 中创建 scott 测试环境,为后续做实验做准备
[oracle@ora11g ~]$ sqlplus sys/oracle@192.168.0.40:1521/pdbtt as sysdba
sql> create user scott identified by scott default tablespace users;
sql> grant connect,resource,create view to scott;
sql> grant unlimited tablespace to scott;
[oracle@ora11g ~]$ sqlplus scott/scott@192.168.0.40:1521/pdbtt
sql> @scott.sql
sql> set line 100 pages 100
sql> select * from scott.emp;
empno ename job mgr hiredate sal comm deptno
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 smith clerk 7902 17-dec-80 800 20
7499 allen salesman 7698 20-feb-81 1600 300 30
7521 ward salesman 7698 22-feb-81 1250 500 30
7566 jones manager 7839 02-apr-81 2975 20
7654 martin salesman 7698 28-sep-81 1250 1400 30
7698 blake manager 7839 01-may-81 2850 30
7782 clark manager 7839 09-jun-81 2450 10
7788 scott analyst 7566 19-apr-87 3000 20
7839 king president 17-nov-81 5000 10
7844 turner salesman 7698 08-sep-81 1500 0 30
7876 adams clerk 7788 23-may-87 1100 20
7900 james clerk 7698 03-dec-81 950 30
7902 ford analyst 7566 03-dec-81 3000 20
7934 miller clerk 7782 23-jan-82 1300 10
14 rows selected.
查看 docker run 的运行参数配置
[root@docker ~]# docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro assaflavie/runlike ora19c
docker run --name=ora19c --hostname=c763a21ec3ec --user=oracle --mac-address=02:42:ac:11:00:03 --env=oracle_edition=enterprise --env=oracle_characterset=zhs16gbk ... ...
# 加到别名里,方便以后使用
alias runlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro assaflavie/runlike"
docker ps
runlike ora19c
最后修改时间:2022-04-16 22:35:40
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。