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