
docker network create --subnet=172.172.0.0/16 my_docker_net
2.启动容器的时候 指定网络和IP地址,感觉容器名字包含IP的信息会好记一点,如:
redis:
docker run -itd --name myRedis_0_5 --net my_docker_net --ip 172.172.0.5 -p 6379:6379 redis
rabbitMq:
docker run -d --hostname myRabbit --name myRabbit --net my_docker_net --ip 172.172.0.6 -p 15672:15672 -p 5672:5672 rabbitmq
docker exec -it myRabbit rabbitmq-plugins enable rabbitmq_management
指定MQ版本:
docker run -d --hostname myRabbit3.10 --name myRabbit3.10 --net my_docker_net --ip 172.172.0.7 -p 15672:15672 -p 5672:5672 rabbitmq:3.10-rc-management
docker exec -it myRabbit3.10 rabbitmq-plugins enable rabbitmq_management
docker exec -it myRabbit3.10 rabbitmq-plugins enable rabbitmq_shovel rabbitmq_shovel_management
mysql:
docker run -itd --name mysql-local --net my_docker_net --ip 172.172.0.2 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
xxl-job-admin
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://172.172.0.2:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root" --net my_docker_net --ip 172.172.0.9 -p 8089:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.3.1
3.这样容器就有固定的IP了,会形成如下状态:
容器外面可以使用映射出的端口访问,但是不能通过指定的IP访问
容器内部容器之间可以使用指定的端口访问,但无法通过容器的主机IP+映射的端口访问
这样似乎还是不方便:一个应用在容器外本来可以访问,可是丢到容器内,因为服务地址配置问题会导致不能访问,切换配置也非常麻烦,如果解决?
一个好的办法是为容器配置一个环境变量,这样容器中的应用会自动读取环境变量
4.通常容器如RIDIS,默认一般没有ifconfig和 ping命令,导致无法查看本机IP地址和PING通对方IP地址,使用如下命令安装:
apt-get update 先升级apt-get,
然后安装
apt install iputils-ping
apt install net-tools
ifconfig 或者 ip addr查看的虚拟ip
在tomcat中设置<Host name="本机的外网IP"首先,这个是不需要的
如果你是用model拨号,那么通过以上设置就可以了
如果你是通过路由器拨号,那么你需要进入路由器..找到"端口映射"(不同的路由器名字可能不一样)将来自WAN的访问"转接"到你自己电脑上
在端口映射的新项中,选择该项为TCP,端口为80,然后转到你自己的 192.168.1.11:80去即可
Tomcat中的ip访问限制,即设置允许某个(或某些)客户端能够访问到tomcat服务器,或不能访问tomcat服务器。
实现方法:
限制tomcat的IP访问只需要编辑tomcat的server.xml,增加适当代码即可。
*** 作步骤:
A、设定我们有一个名为Zweb的虚拟目录。用文本编辑器打开tomcat的 server.xml配置文件,找到其配置代码如下:
<contextpath=”/Zweb” reloadable=”true” docBase=”/var/www/Zweb” />B、将其改成下面代码:
<contextpath=”/Zweb” reloadable=”true” docBase=”/var/www/Zweb”><valueclassName=”org.apache.catalina.values.RemoteAddrValue”
allow=”127.0.0.1” deny=”″ />
</context> 经过这样设置后,将只允许本机访问Tomcat。
C、如要限制只能192.168.1.0-192.168.5.255和192.168.10.0-192.168.15.255这样的IP段,可以这样写:
<contextpath=”/Zweb” reloadable=”true” docBase=”/var/www/Zweb”><valueclassName=”org.apache.catalina.values.RemoteAddrValue”
allow=”192.168.[1-5].*,192.168.[10-15].*” deny=”″ />
</context>
设置好后重新启动Tomcat。
效果:只有指定的主机或IP地址才可以访问部署在Tomcat下的应用。
Tomcat供了两个参数供你配置:RemoteHostValve 和RemoteAddrValve,前者用于限制主机名,后者用于限制IP地址。
通过配置这两个参数,可以让你过滤来自请求的主机或IP地址,并允许或拒绝哪些主机/IP。
全局设置,对Tomcat下所有应用生效,server.xml中添加下面一行,重启服务器即可:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>此行放在</Host>之前。实例:
A、只允许192.168.1.10访问:<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10" deny=""/>
B、只允许192.168.1.*网段访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
C、只允许192.168.1.10、192.168.1.30访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30" deny=""/>
D、根据主机名进行限制:
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="baidu.com" deny=""/>
注:设置好后重新启动Tomcat才生效。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)