docker系列8: docker搭建oracle: [12c,11g]

#oracle_12c 服务
docker run -d  -it --net=host --name oracle12c \
 -v OracleDBData:/ORCL \
 --restart=always  store/oracle/database-enterprise:12.2.0.1
# 登陆oracle12c容器
# docker exec -it oracle12c  bash -c "source /home/oracle/.bashrc; sqlplus /nolog"
# SQL>    sqlplus sys/Oradoc_db1@ORCLCDB as sysdba

#oracle_11g 服务
#docker run -d  --net=host --name=oracle \
-v oracle_app:/home/oracle/app/oracle/ \
--restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
# 登陆oracle_11g 容器
# docker exec -it oracle  bash -c "source /home/oracle/.bash_profile; sqlplus /nolog"
# SQL>    sqlplus system/helowin@helowin  as sysdba

#mysql 服务
#docker run -d  --net=host --name=mysql -v mysql-date:/var/lib/mysql \
 -v mysql-conf:/etc/mysql  -e MYSQL_ROOT_PASSWORD=123456  \
 --restart=always   mysql:5.7

#sqlserver 服务
#docker run -d --net=host --name=mssql \
  -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=AAAaaa123!' \
  -v mssql_db:/var/opt/mssql \
  --restart=always  microsoft/mssql-server-linux 

继上篇 docker系列7:使用nginx 反向代理docker-mysql,安装好mysql后, 继续搭建oracle环境,流程如下:

  • 1, client —> 远程windows服务器:1521 —> 虚拟机的oracle:1521
  • 2, 虚拟机的oracle:1521----> docker-oracle容器:1521

最终: client ----> 远程windows服务器的虚拟机的docker-oracle容器:1521

镜像 用户登录
helowin/oracle_11g sid: helowin, system/helowin
sath89/oracle-12c sid: xe, system/oracle

1, 安装 helowin/oracle_11g

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
#数据持久化:
docker run -d  --net=host \
--name=oracle\
 -v oracle_app:/home/oracle/app/oracle/\
--restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

#====默认配置如下
#hostname: localhost
#port: 1521
#sid: helowin
#username: system
#password: helowin

docker exec -it oracle_11g  bash
su root # 密码:  helowin
#====使得环境变量生效:  可以使用sqlplus
source /home/oracle/.bash_profile


#====登录oracle数据库 ,修改密码
docker exec -it -u root oracle_11g  bash 
su oracle ;
source ~/.bash_profile
sqlplus  
# username: system
# password: helowin
alter user system identified by oracle;
alter user sys identified by oracle;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
exit  #退出oracle 命令行 
exit;  # 退出容器

2, 配置nginx: 反向代理oracle服务

编辑nginx.conf, 配置反向代理,使得外网可以访问服务器内部的服务

# nginx 反向代理
stream {
	upstream mysql{
		hash $remote_addr consistent;
		server 192.168.99.101:3306 max_fails=3 fail_timeout=30s;
	}
      
	upstream oracle{
		hash $remote_addr consistent;
		server 192.168.99.101:1521 max_fails=3 fail_timeout=30s;
	}
	server {
		listen 3306;
		proxy_connect_timeout 3000s;
		proxy_timeout 6000s;
		proxy_pass mysql3;									
	}    
	server {
		listen 1521;
		proxy_connect_timeout 3000s;
		proxy_timeout 6000s;
		proxy_pass oracle;									
	}    
}

# http { ... }

3, oracle 语法

#1,使用system用户登陆,创建普通用户
create user test identified by 123456;
grant connect,dba to test;

#2,使用普通用户登陆,创建表,插入数据
--查询数据库名, 表名
-- select name from v$database;
-- select table_name from all_tables  -- where table_name like '%PER' ; --where ROWNUM <10 ;

--===================================
--创建表
-- create table per(id int, name varchar(10));

--增加数据【两种方式, insert into /insert all into ..into ..select ..】
-- insert into per(id,name) values(1 ,'a');
-- insert all into per values( 2,'b')
-- into per values (3,'c')
-- select 1 from dual;

--删除数据
-- delete from per where id=1;

--修改数据
--update per set name='c2' where id=3;

--查询表数据
--  select * from per;
发布了272 篇原创文章 · 获赞 36 · 访问量 10万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览