目录
你好! 此篇为我在win10安装docker以及部署tomcat应用中遇到坑,在此记录供大家参考,如有错误,请指教。win10已装oracle ,之前一直通过localhost连接数据库。
安装docker
-
开启 Hyper-V
-
下载docker-desktop
访问 https://www.docker.com/get-started,注册一个账号,然后登录。点击 Get started with Docker Desktop,并下载 Windows 的版本,如果你还没有登录,会要求注册登录:
-
运行安装文件
下载镜像
创建软件目录(例: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的。