docker oracle镜像制作并导入数据

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

1.拉取镜像:

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

2.运行一个镜像:

docker run -d -it -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

 

posted @ 2018-06-23 15:37  梦徒  阅读(1788)  评论(0编辑  收藏  举报