Docker的网络配置

Docker网络配置 一、网络相关: IP(网络协议)、 子网掩码 、网关 、DNS 、端口号; 1、子网掩码: 互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。 IP 地址在设计时就考虑到地址分配的层次特点,将每个 IP 地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。 子网掩码是“255.255.255.0”的网络: 最后面一个数字可以在 0~255 范围内任意变化,因此可以提供 256 个 IP 地址。但是实际可用的 IP 地址数量是256-2 ,即 254 个,因为主机号. 阅读详情

1、Docker网络配置

Docker网络模式介绍

在这里插入图片描述
Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用–net去指定,其他三种模式需要在创建容器时使用–net去指定

1.bridge模式(默认模式)

docker run时使用–net=bridge,这种模式会为每个容器分配一个独立的Network Namespace,
同一个宿主机上的所有容器会在同一个网段下,相互之间是可以通信的

 注1:bridge为默认模式,不需要使用参数--net去指定,使用了--net参数反而无效
 注2:bridge模式无法指定容器IP(但非绝对
Docker run -it --name mytomcat01 -p 8081:8080 镜像ID

在这里插入图片描述
注意:我的tomcat没有访问到,原因:多出了有一个webapps.dist,解决方法:
在这里插入图片描述

2.host模式

 docker run时使用--net=host,容器将不会虚拟出IP/端口,而是使用宿主机的IP和端口
docker run -itd --net=host 镜像id

或使用docker run -it --name hsltomcat3 --net=host 镜像id
在这里插入图片描述
注1:host模式不能使用端口映射和自定义路由规则,这些都与主机一致,-p 与-icc 参数是无效的

3.container模式

4.none模式

5.跨主机通信

以上四种均未跨主机,也就是说容器均运行在一台宿主机上,但实际生产环境不可能只用一台来跑。

肯定会用到多台,那么多台主机之间的容器如何通信
1.使用路由机制打通网络
2.使用Open vSwitch(OVS)打通网络
3.使用flannel来打通网络
4.使用Quagga来实现自动学习路由
注:详情见 https://www.cnblogs.com/yy-cxd/p/6553624.html

外部访问docker容器

1 .bridge模式

 docker run -itd -p 7101:7101 镜像ID
 ## -p参数可以出现多次,绑定多个端口号
 docker run -itd -p 8080:8080 -p 8088:8088 镜像ID

2.host模式

 docker run -itd --net=host 镜像ID
 注1:不需要添加-p参数,因为它使用的就是主机的IP和端口,添加-p参数后,反而会出现以下警告:
      WARNING: Published ports are discarded when using host network mode
 注2:宿主机的ip路由转发功能一定要打开,否则所创建的容器无法联网! 
      echo 1 > /proc/sys/net/ipv4/ip_forward

3.相关命令

   #停止并删除所有容器
     docker stop $(docker ps -aq) && docker rm $(docker ps -aq)

4.网桥查看工具bridge-utils

  apt install bridge-utils
     brctl show

2、Docker部署SpringCloud项目

结合我的springcloud博客参考

先确保工程能够正常访问
http://eureka2001.hsl.com:2001/
http://localhost:1005/student/list
http://localhost/student/list

以这五个部署为例

idea中springcloud项目打jar包
   1.在idea运行springcloud项目,不报错,均可正常访问

   2.修改主模块的pom
     <version>0.0.1-SNAPSHOT</version>
     <!-- 1.注意更改为pom而不是jar -->
     <!--
     <packaging>jar</packaging>
     -->
     <packaging>pom</packaging> 

     <!-- 2.主模块不要配置插件 -->
     <build></build>

   3.在各个子module模块的pom.xml文件中添加插件依赖 
     
<build>
        <plugins>
            <!--添加maven插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--添加自己的启动类路径!-->
                    <mainClass>com.hsl.microservicestudentproviderhystrix.MicroserviceStudentProviderHystrixApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <!--可以把依赖的包都打包到生成的Jar包中-->
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
     </build>


   4.点击idea的view ——》Tool windows ——》maven projects
     先双击clean(去掉之前打的包target文件夹)——》再创建install

   5.将项目各子模块target目录下的jar包,复制到指定目录,例如:d:\temp\apps目录下,再通过java命令直接运行
     cmd
     d:
     cd d:\temp\apps   
     java -jar *.jar --spring.profiles.active=xxx

例如:
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

docker部署springcloud

1.宿主机修改hosts文件

 vim /etc/hosts
 ## 在里面添加要映射的域名即可
 127.0.0.1  eureka2001.javaxl.com
 127.0.0.1  eureka2002.javaxl.com

2.宿主机创建文件夹apps,rz上传eureka-server-cluster.jar包至apps

 ## 此目录稍后作为数据卷,在宿主机和容器之间共享数据
  mkdir /apps

3.使用jre:8镜像启动容器,并挂载指定目录为数据卷

  docker run -d \
       -it \
       --net=host \
       --name eureka-server-peer1 \
       --mount type=bind,source=/javaxl_docker/apps,target=/javaxl_docker/apps \
       镜像ID   
 注1:jre:8是自定义镜像,已安装jre1.8

4.进入容器,java命令启动微服务

 docker exec -it eureka-server-peer1 /bin/sh
 java -jar microservice-eureka-server.jar --spring.profiles.active=eureka2001
 注1:同理可以启动eureka-server-peer2
 注2:docker start $(docker ps -aq)

5.测试

	http://192.168.31.1:2001/
	http://192.168.31.1:2002/
【Docker】网络配置的三种方式 Docker提供了多种网络模式,每种模式都有不同的用途和特点,这里我将分享给大家三种不同的常见网络模式,实现不同容器之间的连接访问 阅读详情

相关推荐

Docker 网络配置

Docker 网络配置前言Docker 网络配置外部访问docker容器Docker部署SpringCloud项目 本章知识: 1、Docker 网络配置 2、Docker 部署SpringCloud项目 前言 当你开始大规模使用Docker时,你会发现需要了解很多关于网络的知识。 Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理。 然而,Docker同样有...

qq_44641053的博客 819

SpringCloud与Docker微服务架构实战笔记

一 微服务架构概述 1. 单体应用架构存在的问题 结合:https://www.cnblogs.com/jialanshun/p/10637454.html一起看,在该篇博客中搜索“单块架构的优缺点” (1)复杂性高 以笔者经手的一个百万行级别的单体应用为例,整个项目包含的模块非常多...

209

docker网络配置

在当今的软件开发和运维领域,Docker 已经成为了容器化服务的标准之一。它不仅简化了应用的部署过程,还大大提高了资源利用率。然而,随着Docker应用的深入,网络配置成为了不可忽视的一部分,特别是在需要跨主机通信的场景下。本文将探讨Docker网络访问的基本原理,并介绍如何配置多台机器上的Docker容器能够互相访问。通过本文的介绍,我们了解了 Docker 的几种主要网络模式及其适用场景,学习了如何通过 Overlay 网络让多台机器上的容器相互访问,以及一些高级配置技巧和最佳实践。

xiezhipu的博客 1131

Docker 部署 Spring Cloud并让docker容器使用宿主机ip

Docker 部署 Spring Cloud并让docker容器使用宿主机ip 使用系统、软件版本: linux 版本: [root@VM_0_17_centos docker]# uname -a Linux VM_0_17_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86...

青蛙的博客 1万+

【SOC估算】基于EKF与神经网络融合的锂电池SOC高精度估计及Matlab实现

本文探讨了基于EKF与神经网络融合的锂电池SOC高精度估计方法。通过结合扩展卡尔曼滤波(EKF)的模型驱动优势和神经网络的数据驱动学习能力,实现了对电池荷电状态(SOC)的精准预测。Matlab仿真验证了该混合算法在各种工况下均能显著降低估计误差,提升电池管理系统性能。

play7的博客 694

同物种,不同版本之间的坐标转化

是最常用的工具,如果有可用的链文件,这通常是最便捷的方法。CrossMap是一个功能强大的替代工具,支持多种文件格式和物种。自定义生成链文件适用于没有现成资源的情况,虽然复杂一些,但可以满足特定需求。Ensembl 和 Gramene提供的工具适用于支持的物种,尤其在植物基因组领域可能更具优势。选择合适的方法取决于你正在处理的物种、基因组版本以及现有的资源。

qq_40256654的博客 1851

docker部署springcloud

Docker部署springcloud

weixin_46463851的博客 612

开源代码分享(29)-基于拉丁超立方抽样的风光场景生成和削减

作为分层抽样方法的一 种,拉丁超立方抽样具有良好的抽样精度和效率[14]。本文使用多场景方法来描述可再生能源(风电、光伏)的不确定性。以风电功率为例,首先假定风电功率服从正态分布 N(μ, δ 2 ),μ 为预测值的期望值,δ 为其波动的百分比。接着,采用拉丁超立方抽样[21]生成大量服从概率分布约束的风电出力场景,并采用考虑 Kantorovich 距离[22]的场景削减技术处理该场景,进行场景削减。最后,导出具有相应概率的削减之后的场景。

配电网和matlab的博客 921

Docker之网络配置

bridge(桥接)/host(主机)/container(容器一般不用)/none(一般不用),bridge为默认不需要用--net去指定,其他三种模式需要在创建容器时使用--net去指定#查看网络模式ip aifconfig#Docker网络模式相关命令查看#列出Docker现有网络模式#查看桥接模式下的网络状态#获取多个到容器id#删除所有容器 $代表引用。

2301_79278613的博客 4405

UVM仿真卡住了?别慌!手把手教你定位并解决PH_TIMEOUT超时错误

本文详细解析了UVM仿真中常见的PH_TIMEOUT超时错误,提供了从错误诊断到解决方案的完整指南。通过理解错误机制、分析调试技巧和常见问题场景,帮助验证工程师快速定位并解决这一棘手问题,同时分享了预防措施与最佳实践,提升仿真效率。

weixin_28683065的博客 367

华为服务器BMC方式安装系统-官方文档解读

华为服务器BMC方式安装系统 安装完成之后我们有两种方式去安装系统, > 一、服务器连接显示屏、键盘、鼠标和启动盘去启动服务器安装系统(弊端:需要制作单独启动盘并且需要硬件资源) > 二、使用BMC方式安装系统,也就是说使用网线连接我们的笔记本和服务器的BMC口或者mgt口去进行安装。

王明的博客 4578

Docker——网络配置

今天分享的是虚拟机docker的网络配置,快来看看吧!

彭于晏的博客 1万+

WPS Office JS宏实现文件和数据的上传及下载

WPS Office JS宏下载、上传文件;通过加载项实现数据的获取和上传。

学点笔记 4300

Docker之网络配置的使用

在上期的博客的分享过程中我们分享了Dockerfile如何去构建我们的自定义镜像去符合我们的一个使用需求,以及将我们的构建好的一个镜像文件上传到我们自己的镜像仓库中,方便我们的同事以及项目的部署。今天的我们分享的是docker中的网络配置的使用。在Docker中,网络配置是指设置和管理容器之间及容器与主机之间的网络通信方式的过程。Docker提供了各种网络模式和选项,允许用户在不同场景下进行网络配置。

weixin_74352229的博客 2186

Vue3 - 详解实现网站接入钉钉扫码登录功能,钉钉授权生成登录二维码用户用手机扫描二维码登陆,支持弹框式、浏览器单独新开页显示,钉钉扫描二维码登录详细流程及示例代码,最新vue集成钉钉扫码授权登录!

vue3,nuxt3,钉钉,扫码登录,vue3钉钉扫码登陆,钉钉授权第三方WEB网站扫码登录功能,钉钉扫码登录第三方网站,单点登录,二维码不显示,报错,扫了没反应,出错,vue3钉钉扫码登录,内嵌,获取个人信息,pc网页钉钉登录,钉钉扫码登录怎么新开一页,跳页显示二维码,内嵌登录二维码,iframe新页面弹出,弹出一个小窗口显示登录二维码,登录报错,扫码没反应,解决手机点登录报错没反应,官方文档,手机扫描钉钉二维码登录网站,页面弹出一个小窗口而不是打开一个页面,vue3中使用iframe实现另开小窗口扫码登

🏆 前端领域优质创作者 3693

29、机器人动力学中的欧拉 - 拉格朗日与哈密顿力学

本文深入探讨了机器人动力学中的欧拉-拉格朗日与哈密顿力学框架,涵盖向量流形上的辛结构、哈密顿方程的几何代数表述、泊松括号与积分不变量等核心概念。文章详细推导了机电系统中拉格朗日量与哈密顿量的构建方法,并结合牛顿-欧拉算法给出了局部哈密顿量和动量导数的迭代计算流程,适用于多关节机器人的动力学建模与控制设计。通过应用案例展示了理论在双关节机器人手臂中的实际运用,最后展望了其在优化控制、鲁棒性提升及智能融合方向的潜力。

perl8的博客 129

docker【6】docker网络配置

dokcer网络配置 docker修改bridge

既认准这条路,又何必在意要走多久 9637

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Docker 容器网络配置

自定义docker0桥的网络属性信息需要修改/etc/docker/daemon.json配置文件。

etengirrnhgwerfd的专栏 893

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

docker 查看容器网络配置

我整理的一些关于【Docker】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnN如何查看 Docker 容器的网络配置 Docker 是一个流行的容器化平台,它可以帮助我们将应用程序及其所有依赖打包到一个轻量级的、可移植的容器中。在使用 Docker 的过程中,了...

weixin_40247549的博客 757

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: alpine制作镜像
下一篇: RabbitMQ入门
water_java
博客等级 码龄7年 9粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值