docker--docker网络(四)

1. docker网络模式

docker安装成功后,会自动创建三个网络,可以通过如下的方式查看:

lisen@ubuntu:~$ sudo docker network ls
[sudo] password for lisen:
NETWORK ID          NAME                DRIVER              SCOPE
8994fe397802        bridge              bridge              local
436da757b62d        host                host                local
1b2be829b666        none                null                local
lisen@ubuntu:~$

在运行容器时可以通过--net参数指定网络模式,例如:

  • host模式: --net=host 容器不会虚拟自己的网卡,使用宿主机的ip和端口
  • none模式: --net=none 该模式等同于关闭容器的网络功能,一般在不需要网络的批处理任务中才使用
  • bridge模式: --net=bridge 默认值,如果指定--net参数,则docker就会采用这种模式,这种模式也是最强大灵活,使用的最广的网络模式。


Docker每次创建容器都会同时创建一组互联的网络接口,你可以理解为一根管道的两端, 这组接口一端作为容器的eth0接口,另一端命名类似于veth966865c@if100这样的名字,作为宿主机的一个端口。可以将veth接口的理解为虚拟网线的一端,这个虚拟网线一端插在名为docker0的网桥上,另一端插到容器中。通过这种方式Docker创建了一个虚拟子网,这个虚拟子网被宿主机和所有的Docker容器共享。

注: 可以安装bridge-utils工具查看网桥信息
如: yum install bridge-utils
查看网桥信息: 

brctl show

2. 连接容器的三种方法

docker的最佳实践建议为每个服务创建单独的docker容器,比例:db,redis,应用服务等等,那么不同的服务需要连接以便于作为整体为客服提供服务,例如应用服务需要连接db,redis等。常见的容器连接方法有三种:

  • Docker的内部网络
  • Docker1.9之后,可以使用Docker Networking
  • Docker 链接(Docker link)

1)这三种方式如何选择呢? 

Docker的内部网络,这种方式不灵活,在重启容器需要重新配置,所以不推荐使用这种方式;如果使用Docker1.9之前的版本,则应该选择Docker link的方式; 如果使用docker1.9及更高的版本,则推荐使用Docker Networking,这种方式最灵活,功能也是最强大的。

2)Docker link和Docker Networking之间有什么区别呢?

  • Docker Networking可以连接不同的宿主机上的容器的
  • Docker Networking可以在不更新连接的情况下,停止,启动,或重启容器
  • Docker Networking不必事先创建网络,也不关心容器的启动顺序

3)也就是说只要用的docker是1.9版本之后,就应该使用Docker Networking咯?
恭喜你,答对了。

因为我们肯定会使用docker1.9之后的版本(现在docker已到19.04版本甚至更高版本了),所以我们只讲Docker Networking方式

3. Docker Networking

容器之间连接用网络创建,这个网络被称为Docker Networking,是Docker1.9版本之后的新特性。用户可以通过Docker Networking创建自己的网络,容器可以通过这个网络进行通信。

3.1 创建网络

创建一个新的网络可以使用如下的命令:

sudo docker network create app

可以使用如下的方式来查看网络的详细信息

sudo docker network inspect app

3.2 查看宿主机中创建的网络

sudo docker network ls

 

3.3 删除网络

sudo docker  network rm app

 

 

 说明删除成功

3.3 如何使用网络

1)启动镜像时指定--net参数

sudo docker run -it --name test --net=app  imagename

2)也可以将运行中的容器加入网络

sudo docker network connect app test
  • app 需要加入的网络名
  • test 需要加入到网络的容器名

4. 网络配置示例

我们将通过在docker中部署高可能注册中心(两个配置中心相互注册到对方以实现高可用,避免单点故障),来演示网络配置。

4.1 准备注册中心jar包

1)修改配置文件


我们预先将两个注册中心一个命名我eureka01, 一个命名为eureka02,eureka01需要向eureka02注册,反之亦然。
2)使用maven执行打包

4.2 创建一个目录作为构建目录

创建一个目录作为构建目录,在该目录中创建一个Dockerfile,并准备好需要的软件包。(rgcenter.jar即为注册中心的jar包,为方便该了个短一些的名称)

Dockerfile内容:

FROM ubuntu:latest
MAINTAINER lisen "lisen@163.com"

WORKDIR /usr/local/apps

ADD jdk-8u151-linux-x64.tar.gz /usr/local/java
COPY rgcenter.jar /usr/local/apps

ENV JAVA_HOME=/usr/local/java/jdk1.8.0_151
ENV PATH=$JAVA_HOME/bin:$PATH

ENTRYPOINT ["java","-jar", "rgcenter.jar"]

4.3 将构建目录上传到linux

4.4 执行构建镜像

进入构建目录,执行构建命令

docker build -t lisen/rgcenter:v1.0 .

4.5 创建网络

docker network create appnet

4.6 启动容器

1) 启动第一个注册中心(eureka01),注意和第一步取得名字要一致

docker run -it --net=appnet  -p 8761:8761 --name eureka01 lisen/rgcenter:v1.0 --spring.profiles.active=peer1

2)启动第二个注册中心

docker run -it --net=appnet  -p 8762:8762 --name eureka02 lisen/rgcenter:v1.0 --spring.profiles.active=peer2

4.7 检查防火墙

注意检查防护墙,如果防护墙开启,则需要将8761和8762端口加入防火墙中

ufw status

ufw allow 8761
ufw allow 8762

over! 测试检查是否可以正常访问注册中心:
http://192.168.62.133:8761/
http://192.168.62.133:8762/

5. nacos使用mysql持久化数据

1)在nacos安装目录下\nacos\conf中有nacos-mysql.sql脚本,通过该脚本创建数据库

2)修改nacos安装目录下\nacos\conf中的application.properties文件,配置MySQL链接。

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/489507.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

将谷歌 Gemma AI大模型 部署安装本地教程(可离线使用)

CSDN 成就一亿技术人! 作者主页:点击! ————前言———— 谷歌 Gemma 是一个基于 Python 的图像分析工具,提供快速和准确的物体检测、定位、分类和风格迁移功能。它使用 TensorFlow Lite 模型,使它可以快速运行在…

金和OA C6 IncentivePlanFulfill.aspx SQL注入漏洞复现

0x01 产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 0x02 漏洞概述 金和OA C6 IncentivePlanFulfill.aspx接口处存在SQL注入漏洞,攻击者除了可以利用 SQ…

Matlab-写入mhd和raw医学图像处理格式文件

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 mhd和raw是什么? MHD(MetaImage)和RAW(Raw Image Data)是用于医学图像…

【力扣hot100】207 课程表(c++、python)解析

相关题目: 210 课程表2 【力扣hot100】207 课程表(c++、python)解析 1.官方题解:1.1深搜c++版本python版本1.2广搜c++1.官方题解: 这是一题经典的「拓扑排序」问题 给定一个包含 n 个节点的有向图 G,我们给出它的节点编号的一种排列,如果满足:对于图 G 中的任意一条…

PTA引水入城

在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个 N 行 M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度。 为了使居民…

如何实现无公网IP及服务器实现公网环境企业微信网页应用开发调试

文章目录 1. Windows安装Cpolar2. 创建Cpolar域名3. 创建企业微信应用4. 定义回调本地接口5. 回调和可信域名接口校验6. 设置固定Cpolar域名7. 使用固定域名校验 企业微信开发者在应用的开发测试阶段,应用服务通常是部署在开发环境,在有数据回调的开发场…

百度百科词条创建流程是怎样的?

百度百科词条,作为当今权威的知识分享平台之一,越来越多的个人和企业希望自己在百度百科上拥有独立的词条。如何创建一个高质量的百度百科词条呢?本文伯乐网络传媒将为您详细解析百度百科词条的创建流程及编辑技巧,并提供一些常见…

【YOLOv5改进系列(4)】高效涨点----添加可变形卷积DCNv2

可变形卷积 🚀🚀🚀前言一、1️⃣ 什么是可变形卷积二、2️⃣如何在yolov5中添加DCNv2模块2.1 🎓 修改common.py模块2.2 ✨修改yolo.py文件2.3 ⭐️修改yolov5s.yaml文件2.4 🎯训练可能报错结果 三、3️⃣DCNv2实验结果…

【好书推荐3】Python网络爬虫入门到实战

【好书推荐3】Python网络爬虫入门到实战 写在最前面内容简介作者简介目录前言/序言 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能&#xff…

关于《海岛奇兵》中n点能量可造成最大伤害的计算

最近在玩海岛奇兵, 里面有 武器A, 第n次使用消耗(10 6 * (n - 1))点能量并造成18315伤害; 武器B, 第n次使用消耗 (3 2 * (n - 1))点能量并造成8124伤害, 就想着能不能写一个程序计算一下, 当有x点能量时, 可造成的最大伤害是多少? 分别使用AB武器各多少次? 讨论: https://…

《仙剑7》登陆Xbox主机平台年末大作空窗期

首发一年后,《仙剑奇侠传7》终于登陆Xbox主机平台,而这也恰逢Xbox平台年末大作的窗口期。 随着年底大作的稀缺,以及海外3A RPG《星空》的延期,2022年底的这段时间给Xbox玩家体验《刀剑7》留下了一段空白。 可以说是因祸得福。 《仙…

微服务的可观测性

微服务是是一个大型的分布式系统,服务之间相互依赖支撑系统功能。同时对微服务系统的监控也是微服务体系的重要组成分。对微服务系统的监控主要分为三大部分,Trace追踪,Metrics指标,Log日志。 这三大部分几乎记录了微服务的前部信…

Stable Diffusion之核心基础知识和网络结构解析

Stable Diffusion核心基础知识和网络结构解析 一. Stable Diffusion核心基础知识1.1 Stable Diffusion模型工作流程1. 文生图(txt2img)2. 图生图3. 图像优化模块 1.2 Stable Diffusion模型核心基础原理1. 扩散模型的基本原理2. 前向扩散过程详解3. 反向扩散过程详解4. 引入Late…

【linux】进程地址空间(进程三)

目录 快速了解:引入最基本的理解:细节:如何理解地址空间:a.什么是划分区域:b.地址空间的理解: 为什么要有进程空间?进一步理解页表与写时拷贝: 快速了解: 先来看这样一段…

算法系列--两个数组的dp问题(1)

💕"低头要有勇气,抬头要有底气。"💕 作者:Mylvzi 文章主要内容:算法系列–两个数组的dp问题(1) 大家好,今天为大家带来的是算法系列--两个数组的dp问题(1),两个数组的dp问题在动态规划问题中属于较难的部分…

c++之旅第八弹——多态

大家好啊,这里是c之旅第八弹,跟随我的步伐来开始这一篇的学习吧! 如果有知识性错误,欢迎各位指正!!一起加油!! 创作不易,希望大家多多支持哦! 一&#xff0…

AI研报:从Sora看多模态大模型发展

《从Sora看多模态大模型发展》的研报来自浙商证券,写于2024年2月。 这篇报告主要探讨了多模态大模型的发展趋势,特别是OpenAI发布的视频生成模型Sora,以及其对行业发展的影响。以下是报告的核心内容概述: Sora模型的发布&#x…

【C++航海王:追寻罗杰的编程之路】queue

目录 1 -> queue的介绍和使用 1.1 -> queue的介绍 1.2 -> queue的使用 1.3 -> queue的模拟实现 1 -> queue的介绍和使用 1.1 -> queue的介绍 queue的文档介绍 1. 队列是一种容器适配器,专门用于在FIFO(先进先出)上下文中操作,其…

C语言例4-4:putchar()函数的调用格式和使用的例子

代码如下&#xff1a; //putchar()函数的调用格式和使用的例子 #include<stdio.h> //编译预处理命令&#xff0c;即文件包含命令 int main(void) {char ch1N, ch2E, ch3W;putchar(ch1);putchar(ch2);putchar(ch3); //输出变量c1、c2和c3中的字符putchar(\n);putcha…

Protocol Buffers设计要点

概述 一种开源跨平台的序列化结构化数据的协议。可用于存储数据或在网络上进行数据通信。它提供了用于描述数据结构的接口描述语言&#xff08;IDL&#xff09;&#xff0c;也提供了根据 IDL 产生代码的程序工具。Protocol Buffers的设计目标是简单和性能&#xff0c;所以与 XM…
最新文章