问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在 docker 容器之间设置网络

发布网友 发布时间:2022-02-26 21:20

我来回答

1个回答

热心网友 时间:2022-02-26 22:49

在使用weave之前,你需要在所有宿主机上安装Docker环境,参考这些教程,在Ubuntu或CentOS/Fedora发行版中安装Docker。Docker环境部署完成后,使用下面的命令安装weave:$wget/zettio/weave/releases/download/latest_release/weave$chmoda+xweave$sudocpweave/usr/local/bin注意你的PATH环境变量要包含/usr/local/bin这个路径,请在/etc/profile文件中加入一行(LCTT译注:要使环境变量生效,你需要执行这个命令:source/etc/profile):exportPATH="$PATH:/usr/local/bin"在每台宿主机上重复上面的操作。Weave在TCP和UDP上都使用6783端口,如果你的系统开启了防火墙,请确保这两个端口不会被防火墙挡住。在每台宿主机上启动Weave路由器当你想要让处于在不同宿主机上的容器能够互相通信,第一步要做的就是在每台宿主机上启动weave路由器。第一台宿主机,运行下面的命令,就会创建并开启一个weave路由器容器(LCTT译注:前面说过了,weave路由器也是一个容器):$sudoweavelaunch第一次运行这个命令的时候,它会下载一个weave镜像,这会花一些时间。下载完成后就会自动运行这个镜像。成功启动后,终端会输出这个weave路由器的ID号。下面的命令用于查看路由器状态:$sudoweavestatus第一个weave路由器就绪了,目前为止整个peer对等网络中只有一个peer成员。你也可以使用docker的命令来查看weave路由器的状态:$dockerps第二台宿主机部署步骤稍微有点不同,我们需要为这台宿主机的weave路由器指定第一台宿主机的IP地址,命令如下:$sudoweavelaunch当你查看路由器状态,你会看到两个peer成员:当前宿主机和第一个宿主机。当你开启路由器,这个peer成员列表会更长。当你新开一个路由器时,要指定前一个宿主机的IP地址,请注意不是第一个宿主机的IP地址(LCTT译注:链状结构)。现在你已经有了一个weave网络了,它由位于不同宿主机的weave路由器组成。把不同宿主机上的容器互联起来接下来要做的就是在不同宿主机上开启Docker容器,并使用虚拟网络将它们互联起来。假设我们创建一个私有网络10.0.0.0/24来互联Docker容器,并为这些容器随机分配IP地址。如果你想新建一个能加入weave网络的容器,你就需要使用weave命令来创建,而不是docker命令。原因是weave命令内部会调用docker命令来新建容器然后为它设置网络。下面的命令是在宿主机hostA上建立一个Ubuntu容器,然后将它放到10.0.0.0/24网络中,分配的IP地址为10.0.0.1:hostA:~$sudoweaverun10.0.0.1/24-t-iubuntu成功运行后,终端会显示出容器的ID号。你可以使用这个ID来访问这个容器:hostA:~$dockerattach在宿主机hostB上,也创建一个Ubuntu容器,IP地址为10.0.0.2:hostB:~$sudoweaverun10.0.0.2/24-t-iubuntu访问下这个容器的控制台:hostB:~$dockerattach这两个容器能够互相ping通,你可以通过容器的控制台检查一下。如果你检查一下每个容器的网络配置,你会发现有一块名为“ethwe”的网卡,你分配给容器的IP地址出现在它们那里(比如这里分别是10.0.0.1和10.0.0.2)。Weave的其他高级用法weave提供了一些非常巧妙的特性,我在这里作下简单的介绍。应用分离使用weave,你可以创建多个虚拟网络,并为每个网络设置不同的应用。比如你可以为一群容器创建10.0.0.0/24网络,为另一群容器创建10.10.0.0/24网络,weave会自动帮你维护这些网络,并将这两个网络互相隔离。另外,你可以灵活地将一个容器从一个网络移到另一个网络而不需要重启容器。举个例子:首先开启一个容器,运行在10.0.0.0/24网络上:$sudoweaverun10.0.0.2/24-t-iubuntu然后让它脱离这个网络:$sudoweavedetach10.0.0.2/24最后将它加入到10.10.0.0/24网络中:$sudoweaveattach10.10.0.2/24现在这个容器可以与10.10.0.0/24网络上的其它容器进行通信了。这在当你创建一个容器而网络信息还不确定时就很有帮助了。将weave网络与宿主机网络整合起来有时候你想让虚拟网络中的容器能访问物理主机的网络。或者相反,宿主机需要访问容器。为满足这个功能,weave允许虚拟网络与宿主机网络整合。举个例子,在宿主机hostA上一个容器运行在10.0.0.0/24中,运行使用下面的命令:hostA:~$sudoweaveexpose10.0.0.100/24这个命令把IP地址10.0.0.100分配给宿主机hostA,这样一来宿主机hostA也连到了10.0.0.0/24网络上了。显然,你在为宿主机选择IP地址的时候,需要选一个没有被其他容器使用的地址。现在hostA就可以访问10.0.0.0/24上的所有容器了,不管这些容器是否位于hostA上。好巧妙的设定啊,32个赞
详解五种Docker容器的网络模式

1. 桥接网络桥接网络在主机和容器间创建虚拟桥梁,容器间能相互通信,与未连接的容器隔绝。每个容器将获得独立的IP地址,通过与主机桥接连接,它们可接入本地网络和互联网,但不会在物理网络上显示。2. 主机网络(Host Network)主机网络模式让容器与主机共享相同的网络设置,不隔离。容器使用主机的端口直接...

(13)笔记:Docker容器网络配置

本文详细介绍了Docker容器的网络配置方法,包括host、container、none和bridge模式。在host模式中,容器共享宿主机的网络资源;container模式允许容器与已有容器共享网络命名空间;none模式则创建无网络地址的容器,仅保留lo回环网卡;bridge模式下,容器通过DHCP获取地址,但可以通过pipework分配固定IP,但需注意pipew...

Docker 容器网络配置详解

实现容器间的通信,可以借助veth pair,这是一种成对的虚拟端口,能够直接连接不同的网络命名空间。此外,通过iptables规则,可以管理容器的端口映射,控制网络访问。在配置方面,可以通过修改daemon.json文件或使用-H选项来指定docker0桥的网络属性,以及创建自定义网络。最后,了解如何查看和管理容器的网络状...

Linux下配置Docker容器间网络连接的教程

首先,让我们看下如何运行一个容器服务并且公开其80端口(HTTP)给其他容器。为了这么做,我通过expose命令去运行该容器,这是告诉Docker在运行该容器的时候让其公开特定的端口。当然,被公开的端口是可以被其他容器访问的。让我们运行server_img并且把该容器命名为server1,公开其80端口:代码如下:sudo docke...

docker network (三):容器中添加网络(指定固定IP)

docker network connect 真好,帮助命令已经给出用法了。 这个时候我运行一个镜像。docker run -it alpine:latest sh 使用 ifconfig 命令,查看当前网络状态。docker run -it --network test_network --ip 172.18.0.101 alpine:latest sh

解决Docker容器内无法联网

本文来自我的个人博客 https://www.zhangshenghai.com/posts/50179/ 导致容器内无法联网的原因可能有好多种,我的解决方法是在创建容器时加上参数 --net host,令容器创建时共享主机的network namespace,即容器可以访问主机上所有的网络信息,这样容器内的网络配置就会和主机一模一样。

基于docker-connector连通宿主机网络与Docker桥接网络

在Mac宿主机上,docker-connector提供了支持,安装步骤包括启动服务并使其开机自启。通过brew services命令,我们可以找到服务对应的plist文件,进而定位日志文件和配置文件位置。确保配置文件存在后,我们添加对容器桥接网络的路由,例如针对一个基于Redis的3主3从集群,确定子网信息并添加相应的路由规则。重启...

如何实现docker跨主机之间容器通信问题

testb主机中你自定义的网段选取任意IP地址作为你要启动容器IPdocker run -i -d --net docker-br0 --ip 172.172.1.10 --name test2 3bee3060bfc8 /bin/bash 4.进入testa主机中的dockerdocker exec -it test1 /bin/bash 进入testb主机中的dockerdocker exec -it test2 /bin/bash 5. 配置...

Docker容器间网络互联原理,讲不明白算我输

那我们先分别登陆容器记录下他们的ip 先看实验效果:在9001上curl9002 实验结果是网络互通! 我们再完善一下上面的图,把docker0、以及两个容器的ip补充上去,如下图: 那两台机器之前要通信是要遵循OSI网络模型、和以太网协议的。 我们管172.17.0.2叫做容器2 我们管172.17.0.3叫做容器3 比如我们现在是从:容器2上curl...

--network host所有容器和主机互通

容器中的 localhost 就等于宿主的 localhost 了.在 docker 命令中使用 --network host 来为容器配置host网络 1、docker run的时候加上--network host 2、docker-compose中使用 docker-compose.yaml文件:加上network_mode: host host.docker.internal指向主机ip,如果是127.0.0.1就对了 严重警告:host...

docker exec 进入容器 docker 容器间通信 docker 容器 比docker更好的容器 除了docker还有什么容器 容器技术 docker 进入docker容器的内部 docker查看容器 docker容器管理
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
非法提供麻醉药品罪量刑指南 非法携带管制刀具危及公共安全罪量刑指南 收买被拐卖的妇女罪量刑指南 清洁能源公司怎么取名最佳呢 清洁能源公司有哪些 青年溜冰鞋买什么牌子好?单排还是双排的?有啥区别呢? 除夕给老婆的祝福的话 租房到期不搬走最有效的办法是什么 对方违约怎样解除合同? 幻想之旅电视剧《幻想之旅》 幻想之旅(原名:末路天堂) 主题曲叫什么名字啊? PS怎样画带箭头的直线和曲线 如何在CentOS6.5上安装docker1.9及以上版本 群晖docker 可以做什么 ps曲线箭头怎样画的 请问如何wps/ps画出这种带箭头曲线? 如何在windows上使用docker 怎么使用docker实现负载均衡部署 ps如何画出下面这张曲线箭头,可以根据需要调整的? 怎么用通俗易懂的话来解释Docker(容器)技术 PS怎么做出这样的弧线箭头? 如何把docker进程把启动文件映射到容器内 Photoshop画曲线和箭头的问题 如何在虚拟机安装docker 如何用docker容器运行一款游戏 尚硅谷Java视频教程_Docker核心技术学起来难吗? 如何使用docker搭建视频网站 docker快速搭建几个常用的第三方服务 如何通过Docker进行容器编排 求一份docker/jenkins教程 学习Docker哪本书最好 PHOTOSHOP怎样画带箭头的直线和曲线? docker 同时安装多个应用吗 ps 在图片上画箭头怎么画(曲线,直线箭头等) 如何查看所有运行的docker 请PS高手画一条带箭头的曲线! docker gitlab数据怎么挂在宿主volume下 windows支不支持docker ps cs5如何画出如图中带箭头的红色曲线?? linux上怎么安装nginx 如何在linux下安装nginx linux下怎么安装nginx linux 怎么安装nginx 如何在linux中安装nginx 如何在linux环境下安装nginx linux系统怎么安装nginx 如何在linux上安装nginx 如何查看linux已安装nginx Linux下怎么确定Nginx安装目录 在linux下安装nginx时报出./configure: error: invalid option "–prefix=/usr/webserver/nginx"这个错误 在linux系统下怎么安装两个nginx