问题背景:
1、百度云服务器环境,服务器的防火墙端口已打开
2、百度云的安全组策略的入站规则已正确设置
问题描述:
1、宿主机(本机)环境的tomcat可以正常启动,并且可以通过外网环境访问到
2、宿主机通过docker开启的tomcat使用curl127.0.0.1:8080能访问到,但是外网环境无法访问
解决方案:
在云服务器中使用docker的网络端口映射会导致这个问题, 使用
docker run -d --net=host --name tomcat-test tomcat:latest 直接不虚拟网卡,使用宿主机的网络即可。并且可以保证容器中能够访问到外网!
1、启动zookeeper
docker run -d --net=host --name zookeeper -e “ZOO_ADMINSERVER_ENABLED=false” --restart always zookeeper:latest
2、启动redis
docker run -d --net=host --name --restart always redis redis:latest
3、启动mongo
docker run -id --net=host --name --restart always mongo mongo:latest
4、启动rabbitMq,账号密码为admin/admin
docker run -d --net=host --name rabbitmq3.7.7 --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.7.7-management
5、启动tomcat
docker run -d --net=host --name tomcat8080 -v /docker-data/tomcat/8080:/usr/local/tomcat/webapps tomcat
6、启动mysql
docker run -d --net=host -v /docker-data/mysql/mydata/data:/var/lib/mysql -v /docker-data/mysql/mydata/conf:/etc/mysql -v /docker-data/mysql/mydata/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql --restart=always mysql:5.7
查看容器内生效的变量,方便通过-e进行启动时的更改
docker exec 984 env