docker运行oracle12c注意事项
docker的安装就不说了,这里主要说在docker中运行oracle的事情。首先oracle映像本身比较大,近2.8G,所以你的磁盘空间一定要够,再有运行时还需要大约7G的空间,所以空间要足够,再有是内存,至少需要2G。
获取oracle映像
docker pull registry.docker-cn.com/sath89/oracle-12c
docker images
为启动作准备
oracle映像中的空间是不够安装数据库,需要宿主机的空间,所以需要建立一个目录来放数据库文件。并且需要修改owner,否则启动可能会失败。
mkdir /data/oracle
chown -R 1001:1001 /data/oracle
启动映像
第一次启动过程会比较长,所以需要监控是否启动完成,或者启动过程中是否有错。这里oracle的web管理端口被制作到8080,将宿主机的19000映射到8080,毕竟8080还需要留给TOMCAT,1521必然是需要映射出来的。
docker run -d -p 19000:8080 -p 1521:1521 -v /data/oracle:/u01/app/oracle --name oracle12c ee3351d51185
docker logs -f oracle12c
修改权限及密码
这个映像毕竟制作时间有点长,用户密码早又过期,所以需要修改。
docker exec -it oracle12c /bin/bash
登录映像后,切换到oracle用户,然后登录oracle。
su oracle
$ORACLE_HOME/bin/sqlplus / as sysdba
SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
SQL>alter user SYSTEM account unlock;
SQL>alter user system identified by system;
其他电脑访问oracle
如果你的系统防火墙开着,那需要将19000和1521开放。回到宿主机,执行防火墙命令。
oracle-12c 数据库sid: xe, 如果你没有修改密码,system默认密码为oracle。
firewall-cmd --permanent --zone=public --add-port=19000/tcp
firewall-cmd --permanent --zone=public --add-port=1521/tcp
firewall-cmd --reload
搞定了。