AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[docker-networking](server)

Martin Hope
Bobys
Asked: 2022-01-31 11:19:33 +0800 CST

在 Portainer 中设置 MacVLAN 以从 DHCP 服务器获取 IP

  • 1

我有一个带有 3 个接口(eth0-eth2)的 Portainer VM。我希望容器从位于 xxx1 的每个接口上的 DHCP 服务器请求 IP。

让我们以 eth0 为例:

此接口的子网是 172.16.0/27,我希望我的容器获得 172.16.0.17-30 范围内的 IP。在 Portainer 网络下,我添加了另一个具有以下设置的网络:

  • 名称:172配置
  • 驱动:macvlan 父卡:eth0 子网:172.16.0/27
  • 网关:172.16.1
  • IP 范围:172.16.16/28(我希望将一半的子网主机提供给容器

然后我添加了另一个网络:

  • 名称:172网络
  • 驱动程序:macvlan
  • Macvlan配置:选择创建然后172Config
  • 启用手动容器附件:True

然后我将 172Network 附加到一个新的 httpd 容器,但它不起作用。我在容器上获得了正确的 IP,但我无法 ping 或与它们建立任何类型的连接。任何 Portainer 大师都可以建议这样做的正确方法是什么?

docker docker-networking
  • 1 个回答
  • 1772 Views
Martin Hope
Sim
Asked: 2021-12-30 05:17:02 +0800 CST

Docker 在错误的 IP 范围内创建了额外的网桥

  • 1

我按照这里的答案并将 daemon.json 更改为:

{
  "bip": "10.200.0.1/24",
  "default-address-pools": [
      { "base":"10.201.0.0/16","size":24 },
      { "base":"10.202.0.0/16","size":24 }
  ]
}

因为我想更改 docker 网络使用的 IP 范围。但是,当我开始时,仍然创建了一个属于我想要离开的 IP 范围的网桥:

8: br-6c870af107ba: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:c0:ef:44:7e brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-6c870af107ba
       valid_lft forever preferred_lft forever

如何防止 docker 创建此桥接接口?

networking docker docker-networking
  • 1 个回答
  • 189 Views
Martin Hope
Hiddai
Asked: 2021-09-03 23:11:33 +0800 CST

docker - 创建两个容器有两个不同的网络 ID,而不是使用默认的桥接网络

  • 1

我的目标是,Jenkins容器将与Ansible容器“对话”,以便为Jenkins管道创建Jenkins文件。

我预计这两个容器将“加入”以桥接网络并获得相同网络 ID 的 2 个 IP 地址,但是创建了另外两个网络,并且每个容器都获得了不同网络 ID 的 IP。

此外,预计这两个容器将可以访问互联网。

因此,在我的 Windows 10 中,我正在运行 Docker Desktop,我有 2 个 docker-compose.yml 文件,
一个用于Jenkins容器:

version: '3.7'
services:
  jenkins:
    image: jenkins/jenkins:lts
    privileged: true
    user: root
    ports:
      - 8080:8080
      - 50000:50000
    container_name: jenkins

另一个,对于Ansible容器:

version: '2'
services:
  ansible:
    container_name: ansible
    hostname: ansible
    image: ansible
    volumes:
      - ~/product/ansible:/ansible
    working_dir: /ansible
    build:
      context: .
      dockerfile: Dockerfile
    dns:
      - 200.20.200.20

我为每个 docker-compose.yml 文件运行了以下命令,所以我有两台独立的机器:

docker-compose up --build

我检查了容器的网络详细信息,发现每个容器都有不同的网络 ID,见下文:

PS > docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ansible
172.18.0.2
PS > docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' jenkins
172.19.0.2

检查我的 docker 网络部分,发现除了bridge、host和none之外,还创建了 2 个网络:

PS > docker network ls
NETWORK ID     NAME              DRIVER    SCOPE
8cefaed24885   ansible_default   bridge    local
44bedcd1622d   bridge            bridge    local
61e1c7f7051e   host              host      local
b5a7a7a424a4   jenkins_default   bridge    local
4e5d6c77cb5a   none              null      local

当然,检查桥接网络显示容器密钥为空:

{
    "Name": "bridge",
    "Id": "44bedcd1622d820ce4e29a5cd545f244ba2d303102f1956fe76069a63e7c220e",
    "Created": "2021-08-25T13:13:57.6577149Z",
    "Scope": "local",
    "Driver": "bridge",
    "EnableIPv6": false,
    "IPAM": {
        "Driver": "default",
        "Options": null,
        "Config": [
            {
                "Subnet": "172.17.0.0/16",
                "Gateway": "172.17.0.1"
            }
        ]
    },
    "Internal": false,
    "Attachable": false,
    "Ingress": false,
    "ConfigFrom": {
        "Network": ""
    },
    "ConfigOnly": false,
    "Containers": {},
    "Options": {
        "com.docker.network.bridge.default_bridge": "true",
        "com.docker.network.bridge.enable_icc": "true",
        "com.docker.network.bridge.enable_ip_masquerade": "true",
        "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
        "com.docker.network.bridge.name": "docker0",
        "com.docker.network.driver.mtu": "1500"
    },
    "Labels": {},
    "CreatedTime": 1629897237657
}

我的问题是: a)为什么在我运行命令
时又创建了两个 docker 网络? b)如何使这些容器与桥接网络一起工作并获得相同网络 ID(桥接网络 ID 172.17.xx)的 IP,以便它们能够相互通信?docker-compose up --build

networking docker docker-compose docker-networking
  • 1 个回答
  • 544 Views
Martin Hope
Rohini
Asked: 2021-08-12 04:31:59 +0800 CST

ECS 中的桥接组网模式是否限制容器实例上的任务数

  • 0

我有一个 EC2 注册到 ECS 集群,可以在其上运行任务。最初我选择了awsvpc网络模式,所以每个任务(容器)都有自己的 ENI(IP)。但我在https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI遇到了限制

对于 m5.large 实例类型,ENI 限制为 3

所以我将网络模式更改为 桥接 将使用桥接网络将任务限制为 10,因为从上面的屏幕截图中每个 ENI 的私有 IP 限制为 10。我不知道 using 是否bridge为任务分配了私有 IP。我检查ifconfig了 EC2 主机上的输出,但它返回一长串条目(有些带有私有 IP,有些没有)

amazon-web-services amazon-ecs docker-networking
  • 1 个回答
  • 458 Views
Martin Hope
Dannyboy
Asked: 2021-08-07 05:32:09 +0800 CST

docker容器中的远程mysql服务器-使用macvlan和wireguard访问?

  • 0

情况:美国各地的几台 VPS 服务器通过wireguard 网状网络连接到我的笔记本电脑。对于线保护网状网络,我使用称为内部网(https://github.com/tonarino/innernet)的工具。

所以基本上它就像我的笔记本电脑和 vps 服务器在同一个内部网络上。

VPS ip    = 10.32.89.1
laptop ip = 10.32.90.1

看起来 VPS 和笔记本电脑定义了这个虚拟接口(不确定这是否重要):

innernet

VPS 服务器有 mysql 容器 runig(我不向主机公开 3306 端口)。如何在不将 mysql 端口安装到主机的情况下从我的笔记本电脑连接到该 dockerized mysql 服务器?

推理:
为什么我要这样?
因为我不想让它(mysql 服务器)对整个互联网和攻击者可见,但同时我希望从我的笔记本电脑轻松访问 mysql 数据。

可能的解决方案:
这就是 docker macvlan 的用途吗?我是否需要在 VPS 上创建一个以内部网接口作为父级的网络?然后将我的 mysql 容器附加到该网络?

我试过这个:

docker network create \
-d macvlan \
--attachable \
--subnet=172.40.110.0/24 \
--gateway=172.40.110.1 \
-o parent=innernet \
infranet2

然后我尝试将 mysql 容器加入它:

docker network connect infranet2 mysql-server

但我只得到一个错误:
root@vps:~$ sudo docker network connect infranet2mysql-server 来自守护进程的错误响应:未能创建 macvlan 端口:无效参数

docker wireguard docker-networking
  • 1 个回答
  • 852 Views
Martin Hope
Martin Wurm
Asked: 2021-06-15 03:55:13 +0800 CST

Docker bridge network shadows SSH客户端的IP,如何优雅恢复?

  • 3

我们正在运行带有 Docker 的 RHEL 7 VM 来托管几个内部服务。上次我跑去docker-compose up启动一个新的 Docker 容器时,我失去了与服务器的 SSH 连接,也无法重新建立它。

一位同事能够诊断出罪魁祸首是一个新的 Docker 网络,该网络是作为执行docker-compose命令的一部分而创建的,其 IP 范围恰好与我连接的机器所在的那个重叠。我的同事能够通过关闭 Docker 守护程序并删除由 Docker 创建的指向相关 docker 网络网桥的静态路由来重新获得我的访问权限。他之所以能够做到这一点,是因为他在同一子网中拥有另一台机器,他可以通过该机器进行连接。

现在我遇到的问题是,虽然能够再次连接到服务器,但我无法启动 Docker 守护程序,除非它还恢复了行为不端的网络并再次切断我的连接。但是,我也不能先使用docker network rm或docker network prune删除网络,因为这些命令仅在 Docker 守护程序正在运行时才有效。我无权访问 IP 与所述 IP 范围不冲突且具有访问我要恢复的机器所需的防火墙规则的机器。

有什么方法可以优雅地解决这种情况并让 Docker 守护程序再次运行而不会失去对机器的访问权限?如有必要,删除与所述网络相关的容器是没有问题的。如果我能首先让机器恢复工作状态,我会很高兴。

我从这篇文章中了解到,可以配置 Docker 允许使用的 IP 范围,一旦事情重新启动并运行,我肯定会这样做。这可能已经自行解决了问题,还是只会影响 Docker 未来创建的网络?

linux redhat docker docker-compose docker-networking
  • 1 个回答
  • 343 Views
Martin Hope
Thefeli73
Asked: 2021-02-01 09:10:01 +0800 CST

通过 portainer 访问不同主机的 docker 容器

  • 2

我的 ubuntu 服务器上有一些容器(运行各种服务),我通过 portainer 管理这些容器,portainer 也是这些容器之一。我还想从同一个搬运工界面管理一个 pihole 容器(在不同的服务器(树莓派)上运行)。这些机器位于相同的本地专用网络上。

我读过有关通过 tcp 等代理/公开 docker unix 套接字的人,但这似乎有风险且不安全,更像是一种解决方法。我尝试阅读 docker swarms ,但这似乎是一个不同的用例,但我可能是错的。

非常感谢任何帮助:)

networking docker docker-networking docker-swarm containers
  • 1 个回答
  • 480 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve