第一次接触这个,主要还是缺乏对应的知识花了好长时间,才调成功。好菜只能说。
先说说遇到被卡住的点吧。
调试的服务是WebLogic,我选择了Docker。
怎么访问虚拟机里的Docker容器首先面临的是远程主机访问虚拟机里的Docker容器。
|----------------------------------------|
| |
| |--------------------------------| |
| | | |
| | docker(CentOS) 172.18.0.2 | |
| |--------------------------------| |
| |
| Virtual Machine(CentOS) 192.168.27.143 |
|----------------------------------------|
Windows 192.168.137.123
- sudo docker ps查看容器端口映射
└─$ sudo docker ps CONTAINER ID [...] PORTS 3029fb079497 [...] 0.0.0.0:5556->5556/tcp, :::5556->5556/tcp, 0.0.0.0:7001->7001/tcp, :::7001->7001/tcp
- ifconfig查看虚拟机ip,在远程主机里使用[vm_ip]:[docker_prot]就能访问了。
这里因为没有理解服务端口和远程调试端口的关系,在这上面就花掉了1天。
服务端口和远程调试端口是相互独立的,而我使用的image启动后的服务端口是7001,剩下一个映射出来的5556才应该被配置为远程调试端口。
使用环境是vulhub里的weak_password
- 首先查看一下docker-compose.yml,确认一下端口映射,然后启动环境。
cat docker-compose.yml
#output
version: '2'
services:
weblogic:
image: vulhub/weblogic:10.3.6.0-2017
volumes:
- ./web:/root/Oracle/Middleware/user_projects/domains/base_domain/autodeploy
ports:
- "7001:7001"
- "5556:5556"
sudo docker-compose up -d
sudo docker ps
sudo docker exec -it [CONTAINER ID] /bin/bash
2.查找setDomain.sh文件。有很多个setDomain.sh,一开始不熟悉还改错了。
find / -name "setDomainEnv.sh" #output /root/Oracle/Middleware/wlserver_10.3/samples/domains/medrec/bin/setDomainEnv.sh /root/Oracle/Middleware/wlserver_10.3/samples/domains/wl_server/bin/setDomainEnv.sh /root/Oracle/Middleware/wlserver_10.3/samples/domains/medrec-spring/bin/setDomainEnv.sh /root/Oracle/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh #是这个
- 添加配置,添加远程调试端口配置。
vi /root/Oracle/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh
#查找关键字JAVA_DEBUG
JAVA_DEBUG=""
export JAVA_DEBUG
if [ "${debugFlag}" = "true" ] ; then
在export JAVA_DEBUG和if [ "${debugFlag}" = "true" ] ; then之间添加
debugFlag="true" DEBUG_PORT=5556 export debugFlag
4.重启Docker服务,再次连接容器。
sudo service docker restart sudo docker-compose up -d sudo docker exec -it [CONTAINER ID] /bin/bash
- 将容器打包并复制到虚拟机中。在Linux中打包和压缩是不同的概念,可以看Linux tar打包命令详解了解。然后复制到虚拟机中。
#打包 tar -zvcf modules.tar.gz modules/ # /root/Oracle/Middleware tar -zvcf wlserver_10.3.tar.gz wlserver_10.3/ # /root/Oracle/Middleware #复制到虚拟机 sudo docker cp [CONTAINER ID]:/root/Oracle/Middleware/modules.tar.gz ~/Desktop sudo docker cp [CONTAINER ID]:/root/Oracle/Middleware/wlserver_10.3.tar.gz ~/Desktop
- 创建一个普通Java项目,然后把解压好的modules和wlserver_10.3导入到项目里的额外lib。
剩下的在IDEA中添加的步骤就参考第二种方式idea导包的三种方式(导入jar包/添加库/全局库)
暑期编程PK赛 得CSDN机械键盘等精美礼品!


