docker oracle镜像制作并导入数据详解架构师

docker已经安装,并可以正常拉取镜像.

1.拉取镜像:

docker pull alexeiled/docker-oracle-xe-11g

2.运行一个镜像:

docker run -d -P -p 1521:1521 -v /data:/home/oracle/data_temp --name oracle_11g  alexeiled/docker-oracle-xe-11g

3.进入oracle镜像:

docker -exec -it oracle_11g bash

4.数据库操作导入数据:

# su - oracle 
# sqlplus / as sysdba 
 
SQL> select name from v$database; 
 
oracle创建目录: 
SQL> create directory expdp as '/home/oracle/data_temp'; 
 
查看oracle创建的目录 
 
SQL> select * from dba_directories; 
 
删除目录: 
 
SQL> DROP DIRECTORY expdp 
 
创建用户: 
 
SQL> create user dev_p2p identified by 123456 default tablespace users; 
 
查看用户名: 
 
SQL> select username from dba_users; 
 
删除用户: 
 
SQL> drop user dev_p2p cascade; 
 
授权用户 dev_p2p,拥有连接,管理员,导入,导出权限,并可以传递权限。(根据需求自己定义权限)   
 
SQL> grant connect,dba,exp_full_database,imp_full_database to dev_p2p with admin option; 
 
 
查看表空间: 
 
SQL> select tablespace_name from dba_tablespaces; 
 
#su - oracle 
#impdp dev_p2p/123456 directory=expdp dumpfile=DEVELOP_P2P20180614.dmp logfile=impdp.log REMAP_SCHEMA=dev_p2p:dev_p2p 
 
 
注意:一定要让expdp目录即/home/oracle/data_temp目录有写入的权限,不然导入会报错.可以使用oracle权限试创建目录测试 
 
     impdp的REMAP_SCHEMA参数实现不同用户之间的数据迁移

 数据导入成功后我们可以做成一个新的镜像以便以后使用:

1.退出容器(exit)

2.提交镜像:

docker commit -a "develop" -m " dev oracle" dbc665e246cd dev_p2p/oracle:latest 
 
#-a:指定的是镜像作者 
#-m:镜像的注释 
#dbc665e246cd  原容器ID 
#dev_p2p/oracle:新容器的名称

3.启动新镜像:

docker run -d -P dev_p2p/oracle:latest

4.查看:

# docker ps 
CONTAINER ID    IMAGE                     COMMAND                  CREATED            STATUS           PORTS                                              NAMES 
e9b707ddaf29    dev_p2p/oracle:latest     "/bin/sh -c /start.sh"   10 minutes ago     Up 10 minutes    0.0.0.0:32803->1521/tcp, 0.0.0.0:32802->8080/tcp   admiring_easley

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/6891.html

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论