因测试需要,需在内网的测试环境搭建一套docker Oracle 11g环境进行测试,测试环境为redhat 6.6 安装docker 1.7,本机windows 7 环境,安装docker 17.12
1、在windows下联网获取Oracle镜像,并新建容器,wnameless/oracle-xe-11g 的hubdocker地址为 https://hub.docker.com/r/wnameless/oracle-xe-11g/
docker pull wnameless/oracle-xe-11g
#新建容器test
docker run -d -p 49170:22 -p 49171:1521 -h asptest -e ORACLE_ALLOW_REMOTE=true --name test wnameless/oracle-xe-11g
2、将容器导出、并导入内网环境
docker export test>docker-oracle-xe-11g.tar #这里注意export|save的区别
#将test.tar 上传到内网测试环境
cat docker-oracle-xe-11g.tar |docker import - wnameless/oracle-xe-11g
#启动新容器,并将ssh的22端口映射到宿主机的49170端口,1521端口映射到49171
docker run -d -p 49170:22 -p 49171:1521 -h test -e ORACLE_ALLOW_REMOTE=true --name test wnameless/oracle-xe-11g /bin/sh -c "/usr/sbin/startup.sh && /usr/sbin/sshd -D"
#这里注意,/bin/sh -c "/usr/sbin/startup.sh && /usr/sbin/sshd -D" ,如果不带command的话,容器启动时会报错,start.sh脚本为启动oracle,sshd -D 为启动ssh服务并保持容器不退出