docker之docker容器flannel模式多网段跨主机通信所遇问题集

问题一:docker无法启动
错误提示:
[[email protected] docker.service.d]# systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: error (Reason: Invalid argument)
Drop-In: /usr/lib/systemd/system/docker.service.d
└─flannel.conf
Active: failed (Result: start-limit) since Fri 2020-01-17 01:18:59 PST; 4min 57s ago
Docs: https://docs.docker.com
Main PID: 9775 (code=exited, status=1/FAILURE)

Jan 17 01:18:56 localhost.localdomain systemd[1]: docker.service failed.
Jan 17 01:18:59 localhost.localdomain systemd[1]: docker.service holdoff time over, scheduling restart.
Jan 17 01:18:59 localhost.localdomain systemd[1]: Stopped Docker Application Container Engine.
Jan 17 01:18:59 localhost.localdomain systemd[1]: start request repeated too quickly for docker.service
Jan 17 01:18:59 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
Jan 17 01:18:59 localhost.localdomain systemd[1]: Unit docker.service entered failed state.
Jan 17 01:18:59 localhost.localdomain systemd[1]: docker.service failed.
Jan 17 01:20:37 localhost.localdomain systemd[1]: docker.service has more than one ExecStart= setting, wh...ing.
Jan 17 01:21:34 localhost.localdomain systemd[1]: docker.service has more than one ExecStart= setting, wh...ing.
Jan 17 01:23:46 localhost.localdomain systemd[1]: docker.service has more than one ExecStart= setting, wh...ing.
Hint: Some lines were ellipsized, use -l to show in full.

解决:
升级内核:
[[email protected] docker.service.d]# yum update -y
升级完成后,卸载旧版本,重新安装docker-ce。
[[email protected] docker.service.d]# rpm -qa |grep docker-ce
docker-ce-19.03.5-3.el7.x86_64
docker-ce-cli-19.03.5-3.el7.x86_64
[[email protected] docker.service.d]# rpm -e --nodeps docker-ce-19.03.5-3.el7.x86_64
[[email protected] docker.service.d]# rpm -e --nodeps docker-ce-cli-19.03.5-3.el7.x86_64
[[email protected] docker.service.d]# yum install -y docker-ce-*

[[email protected] docker.service.d]# systemctl start docker

[[email protected] docker.service.d]# systemctl status docker

docker正常启动!!!!
反思:是否可以先安装flannel,再按照docker-ce,是否会出现类似的情况?待测试!!!!

问题二:docker、flannel正常启动,但docker0无法获取地址池地址。

解决:
修改/usr/lib/systemd/system/docker.service文件
[[email protected] docker.service.d]# vim /usr/lib/systemd/system/docker.service
添加以下内容:
在ExecStart=/usr/bin/dockerd后添加$DOCKER_NETWORK_OPTIONS
在[server]最后添加
EnvironmentFile=/run/flannel/docker

重新启动docker
[[email protected] docker.service.d]# systemctl daemon-reload
[[email protected] docker.service.d]# systemctl restart docker.service
[[email protected] docker.service.d]# ifconfig

docker0正常获取flannel地址池。

原文地址:https://blog.51cto.com/3001441/2467573

时间: 2024-11-07 12:25:34

docker之docker容器flannel模式多网段跨主机通信所遇问题集的相关文章

docker之docker容器flannel模式多网段跨主机通信

一.简介flannel是为实现多网段通信的第三方的解决方案, 是 CoreOS 开发的容器网络解决方案.flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 host 间路由,容器间无需 NAT 和 port mapping 就可以跨主机通信.每个 subnet 都是从一个更大的 IP 池中划分的,flannel 会在每个主机上运行一个叫 flanneld 的 agent,其职责就是从池子中分配 subnet.为了在各个主机间共享信息

Docker:macvlan实现容器跨主机通信 [十四]

一.什么是macvlan 1.macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址, 2.即多个 interface,每个 interface 可以配置自己的 IP. 3.macvlan 本质上是一种网卡虚拟化技术 二.跨主机通信 1.创建macvlan 1.主机luoahong [[email protected] ~]# docker network create --driver macvlan --subnet 10.0.0.0/2

Docker容器跨主机通信之:直接路由方式

概述 就目前Docker自身默认的网络来说,单台主机上的不同Docker容器可以借助docker0网桥直接通信,这没毛病,而不同主机上的Docker容器之间只能通过在主机上用映射端口的方法来进行通信,有时这种方式会很不方便,甚至达不到我们的要求,因此位于不同物理机上的Docker容器之间直接使用本身的IP地址进行通信很有必要.再者说,如果将Docker容器起在不同的物理主机上,我们不可避免的会遭遇到Docker容器的跨主机通信问题.本文就来尝试一下. 方案原理分析 由于使用容器的IP进行路由,就

overlay 如何实现跨主机通信?- 每天5分钟玩转 Docker 容器技术(52)

上一节我们在 host1 中运行了容器 bbox1,今天将详细讨论 overlay 网络跨主机通信的原理. 在 host2 中运行容器 bbox2: bbox2 IP 为 10.0.0.3,可以直接 ping bbox1: 可见 overlay 网络中的容器可以直接通信,同时 docker 也实现了 DNS 服务. 下面我们讨论一下 overlay 网络的具体实现: docker 会为每个 overlay 网络创建一个独立的 network namespace,其中会有一个 linux brid

docker之跨主机通信

本地workstations虚拟机server1和server2环境为centOS7.7,安装软件为docker-ce,docker版本为19.03.05docker安装就不介绍了,直接进主题.一.准备工作跨主机需要两个独立的网卡:server1和server2添加网卡 [[email protected] ~]# ip addr show 查看网卡是否添加成功 添加成功. macvlan本身是linxu kernel的模块,本质上是一种网卡虚拟化技术.其功能是允许在同一个物理网卡上虚拟出多个网

Docker跨主机通信网络

Docker跨主机通信网络 跨主机网络方案包括: docker原生的 overlay 和 macvlan.第三方方案:常用的包括flannel.weave 和 calico. (1)准备 Overlay 网络实验环境 [[email protected] ~]# docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap [[email protected] ~]# netstat -

Docker跨主机通信:桥接方式和路由方式

1.直接路由 通过在主机中添加静态路由来实现跨主机通信.如果有两台主机host1和host2,两主机上的docker容器是两个独立的二层网络,将con1发往con2的数据流先转发到主机host2上,再由host2转发到其上的docker容器中,反之亦然. 由于使用容器的IP进行路由,就需要避免不同主机上的docker容器使用相同冲突的IP,所有应该为不同的主机分配不同的IP子网. #主机A上:192.168.187.143,主机B:192.168.187.144 #S1:添加网卡docker0,

Docker容器跨主机通信之:OVS+GRE

一.概述 由于docker自身还未支持跨主机容器通信,需要借助docker网络开源解决方案 OVS OpenVSwich即开放式虚拟交换机实现,简称OVS,OVS在云计算领域应用广泛,值得我们去学习使用. OpenVSwich OpenVSwich是一种开源软件,通过软件的方式实现二层交换机功能,专门管理多租赁云计算网络环境,提供虚拟网络中的访问策略.网络隔离.流量监控等. 既然是虚拟交换机,自然与传统的物理交换机有着相同的特性,操作中可以按照理解物理交换机的方式去操作,有助于对虚拟交换机的认识

Docker跨主机通信之路由

一.实验环境: 主机名 主机IP Docker0_IP Docker1 192.168.88.130 172.17.0.1 Docker2 192.168.88.131 172.18.0.1 二.实验操作 设定指定的dokcer0的IP #vim /usr/lib/systemd/system/docker.service ExecStart=/usr/bin/docker daemon --bip=172.18.42.1/16 -H fd:// -H=unix:///var/run/docke