1、Docker网络配置
Docker网络模式介绍
Docker在创建容器时有四种网络模式:bridge,host,container,none。
1.bridge模式(默认模式)
docker run时使用–net=bridge,这种模式会为每个容器分配一个独立的Network Namespace,
同一个宿主机上的所有容器会在同一个网段下,相互之间是可以通信的
注1:bridge为默认模式,不需要使用参数–net去指定,使用了–net参数反而无效
实例1:通过访问tomcat
docker run -it --name 别名 -p 8081:8080 镜像ID
2.host模式
docker run时使用–net=host,容器将不会虚拟出IP/端口,而是使用宿主机的IP和端口
注1:host模式不能使用端口映射和自定义路由规则,这些都与主机一致,-p 与-icc 参数是无效的
实例2:通过访问tomcat
docker run -it -d --name mytomcat09 --net=host 镜像ID
这两个实例的测试方式:
ip:8081 (默认模式)
ip:8080(主机模式)
2、Docker部署SpringCloud项目
在IDEA中把项目打成jar包
1.首先确保SpringCloud项目能够正常访问
2.将SpringCloud项目的子项目打成jar包
①修改父项目中的pom依赖
<packaging>pom</packaging>
②把要打jar包的子项目的pom中添加下面代码
记得要添加自己的启动类路径
<build>
<plugins>
<!--添加maven插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--添加自己的启动类路径!-->
<mainClass>com.wr.microservicestudentproviderhystrix.MicroserviceStudentProviderHystrixApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<!--可以把依赖的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
③点击子项目,右键Run Maven,点击clean,完成后再点install
(这一步在install的时候可能会出错,所以要先把父工程install打成jar包,然后再把子工程打成jar包)
④完成后,把打好的jar包copy出来(随便放在一个位置就好)
⑤测试一下jar包是否有误
在jar包所处的文件夹中,shift+右键打开黑窗口,在黑窗口中输入如下内容(一次输入一句):
java -jar microservice-eureka-server.jar --spring.profiles.active=eureka2001
java -jar microservice-eureka-server.jar --spring.profiles.active=eureka2002
java -jar microservice-student-provider-hystrix.jar --spring.profiles.active=provider-hystrix-1005
java -jar microservice-student-provider-hystrix.jar --spring.profiles.active=provider-hystrix-1006
java -jar microservice-student-consumer-feign-80.jar
⑥运行完之后输入网址测试一下即可
http://eureka2001.wr.com:2001/
docker部署springcloud项目
1.宿主机修改hosts文件
vi /etc/hosts
在里面添加要映射的域名即可
127.0.0.1 eureka2001.wr.com
127.0.0.1 eureka2002.wr.com
2.宿主机创建文件夹apps,上传jar包至apps
mkdir /apps
3.使用jre:8镜像启动容器(jre8是自定义的镜像并且上传到了阿里云,上一篇博客中有它的来由),并挂载指定目录为数据卷
docker run -d \
-it \
--net=host \
--name 取一个容器名 \
--mount type=bind,source=/wr/apps,target=/wr/apps \
镜像ID
4.进入容器,java命令启动微服务
docker exec -it eureka-server-peer3 /bin/sh
5.最后在存放jar包的目录下运行jar包
java -jar microservice-eureka-server.jar --spring.profiles.active=eureka2001
6.测试(宿主机ip:端口)
如果测试时报错,页面不出,有可能是是因为防火墙没关,执行关闭防火墙的代码再测试(systemctl stop firewalld.service
或者systemctl disable firewalld.service
)
这里只显示了运行一个注册中心2001,自己还可以部署生产者,消费者等等.
来源:CSDN
作者:易心i
链接:https://blog.csdn.net/weixin_45111741/article/details/104519438