Docker之网络配置

江枫思渺然 提交于 2020-02-27 00:22:46

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,自己还可以部署生产者,消费者等等.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!