docker镜像操作-封装oracle11g数据库

使用

下载
docker pull registry.cn-beijing.aliyuncs.com/lixl_repo/oracle_database:11.2.0.4.0

运行
docker run -idt -p 1521:1521 --name oracledb registry.cn-beijing.aliyuncs.com/lixl_repo/oracle_database:11.2.0.4.0

1
2
3
4
5
6
7
8
# url访问
localhost:1521/sysware system/sysware

# sqlplus访问
docker exec -it oracledb /bin/bash

sqlplus / as sysdba
sqlplus system/sysware

镜像制作

Dockerfile https://gitee.com/lixl/docker-oracledatabase

1
docker build -t oracle_database:11.2.0.4.0 ./

其他

官方docker镜像

数据库官方docker镜像制作文档

如何增加docker容器中/dev/shm的大小

docker默认的shm大小为:64MB
可通过shm-size参数指定shm的大小
docker run -idt --shm-size=1G --user root oracle11g /bin/bash

oracle报错ORA-00845: MEMORY_TARGET not supported on this system

方法1 增加shm大小

  1. 在操作系统直接安装oracle,直接调整OS的shm大小即可
  2. 在docker里安装oracle,增加容器的shm即可

    方法2 调整oracle的MEMORY_TARGET值

    Oracle11g修改MEMORY_TARGET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SQL> create pfile from spfile;

File created.

SQL> show parameter memory

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 696M
memory_target big integer 696M
shared_memory_address integer 0


SQL> alter system set memory_target=64m;

SQL> alter system set memory_max_target=64m scope=spfile;

docker-sqlplus使用

1
2
3
4
5
6
$docker pull sflyr/sqlplus
$docker tag sflyr/sqlplus 192.168.18.144:5000/oracle/sqlplus:11.2.0.3.0
$docker run --rm \
-e URL=P2M_SF_DEV_20200305/P2M_SF_DEV_20200305@192.168.5.200:1521/sysware1 \
-it 192.168.18.144:5000/oracle/sqlplus:11.2.0.3.0
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8