docker安装oracle11g (不做持久化)
1.下载镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
2.启动oracle
docker run -d -p 1521:1521 --name oracle registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
遇到的问题
iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 1521 -j DNAT --to-destination 172.17.0.2:1521 ! -i docker0: iptables: No chain/target/match by that name
解决方法:
#重启docker
systemctl restart docker
3.查看容器是否启动成功
[oracle@76661f8b8349 ~]$ ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 0 :::35560 :::*
LISTEN 0 0 :::1521 :::*
#查看容器
[root@localhost oracle]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76661f8b8349 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g "/bin/sh -c '/home..." About an hour ago Up 56 minutes 0.0.0.0:1521->1521/tcp oracle
4.进入oralce容器创建用户
[root@localhost oracle]# docker exec -it oracle /bin/bash
[oracle@76661f8b8349 /]$ cd /home/oracle/
[oracle@76661f8b8349 ~]$ source .bash_profile
[oracle@76661f8b8349 ~]$
[oracle@76661f8b8349 ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 18 11:10:07 2020
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
SQL> alter user system identified by system;
User altered.
SQL> alter user sys identified by system;
User altered.
SQL> create user mike identified by mikeops;
User created.
SQL> grant connect,resource,dba to mike;
Grant succeeded.
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Profile altered.
SQL> alter system set processes=2000 scope=spfile;
System altered.
SQL> select * from dba_users t where t.username = 'MIKE';
其中涉及到的命令含义:
cd /home/oracle # 进入到 oracle 用户目录
source .bash_profile # 加载 oracle 环境变量
sqlplus /nolog # 登录oracle数据库
conn /as sysdba # 切换管理用户
alter user system identified by system; # 修改system用户账号密码为system
alter user sys identified by system; # 修改sys用户账号密码为system
create user mike identified by mikeops; # 创建内部管理员账号mike 密码为mikeops
grant connect,resource,dba to mike; # 将dba权限授权给内部管理员账号
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; # 修改密码规则策略为密码永不过期
alter system set processes=2000 scope=spfile; # 修改数据库最大连接数据
select * from dba_users t where t.username = ‘MIKE’; # 查看mike用户创建信息* *
5.使用Navicat连接测试
(1)创建oracle数据库连接
(2)连接名:随便起
连接类型:Basic
主机:数据库所在服务器IP地址
端口:1521
服务名:ORCL
选择SID
用户名:刚才上面创建的用户名
密码:刚才上面创建用户的密码