win10下docker挂载以及容器访问宿主机中的oracle

目录

你好! 此篇为我在win10安装docker以及部署tomcat应用中遇到坑,在此记录供大家参考,如有错误,请指教。win10已装oracle ,之前一直通过localhost连接数据库。

安装docker

  1. 开启 Hyper-V
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 下载docker-desktop
    访问 https://www.docker.com/get-started,注册一个账号,然后登录。点击 Get started with Docker Desktop,并下载 Windows 的版本,如果你还没有登录,会要求注册登录:
    在这里插入图片描述

  3. 运行安装文件
    在这里插入图片描述

下载镜像

创建软件目录(例:C:/test/software),并把安装包放在该目录下

在这里插入图片描述
tomcat、jdk版本自行选择。

启动容器

容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中,安装自己所需的软件或应用程序。

使用以下命令即可启动容器:

docker run -i -t -v /c/test/software/:/mnt/software/ e934 /bin/bash 

命令包含以下三个部分:

docker run <相关参数> <镜像 ID> <初始命令>

坑1: win10中路径(C:/test/software)转变为(/c/test/software)

安装软件

1、解压 JDK 程序包:

tar -zxf /mnt/software/jdk-8u121-linux-x64.tar.gz -C .

移动 JDK 目录:

mv jdk1.8.0_121/ /opt/jdk/

2、解压Tomcat程序包:

tar -zxf /mnt/software/apache-tomcat-7.0.81.tar.gz -C .

移动Tomcat目录:

mv apache-tomcat-7.0.81/ /opt/tomcat/

3、编写运行脚本
创建运行脚本:

touch /root/run.sh
vi /root/run.sh

编辑脚本内容如下:

#!/bin/bash
  
export JAVA_HOME=/opt/jdk/
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_OPTS=-Xmx700M -Xms700M -Xmn200M -XX:MaxMetaspaceSize=100M -XX:MetaspaceSize=100M 
sh /opt/tomcat/bin/catalina.sh run

为运行脚本添加执行权限:

chmod u+x /root/run.sh

坑2:设定JAVA_OPTS,以防tomcat内存溢出。docker内存溢出后会直接kill相关进程

退出容器

使用exit命令,退出容器。

随后,可使用如下命令查看查看所有容器:

docker ps -a

记住以上CONTAINER ID(容器 ID),随后将通过该容器,创建一个可运行 Tomcat 镜像。

创建Tomcat镜像

使用以下命令,根据某个“容器 ID”来创建一个新的“镜像”:

docker commit d4e3 mytomcat:1.0

该容器的ID是d4e3,所创建的镜像名是“mytomcat:1.0”,随后可使用镜像来启动Tomcat容器。

启动Tomcat容器

新建c:/test/webapps/目录,在该目录下存放自己的wen应用war,或者时解压缩的文件夹

要使用以下命令:

docker run -d -p 8080:8080 -v /c/test/webapps/:/opt/tomcat/webapps/ --name mytomcat_1 mytomcat:1.0 /root/run.sh

在浏览器中,输入宿主IP和端口号,即可访问 Tomcat
坑3:此时容器中web应用无法通过localhost连接宿主机win10中的Oracle,解决方案见下:
Step1: 修改配置文件

配置文件位于:安装目录\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora文件中,将默认的localhost改为你的计算机名。

Step2: 开启端口
在防火墙里面增加入站规则,当然也可以直接关闭防火墙:
在这里插入图片描述
在这里插入图片描述
一直下一步即可,添加完成之后可以看到新增加的入站规则:
在这里插入图片描述
Step3:确定访问IP
查看/windows/system32/drivers/etc目录下host文件,内容中host.docker.internal对应的IP 即是用来替换 localhost的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值