如何在docker-compose中配置网络?

拉登喷气机

在主机中,我使用以下命令创建了docker网络:

docker network create -d macvlan \
    --subnet=192.168.2.0/24 \
    --gateway=192.168.2.1  \
    -o parent=eth0 pub_net

docker网络如下所示:

[root@192-168-2-70 shell]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
935ae8b52eb2        bridge              bridge              local
81577f72f606        host                host                local
846d54a2c7da        none                null                local
158428b19c4d        pub_net             macvlan             local
[root@192-168-2-70 shell]# 

具有指定IP的docker容器可以通过以下命令启动:

docker运行--net = pub_net --ip = 192.168.2.10 --name hadoop0 --hostname hadoop0 -d -P hadoop-cluster-hadoop0:v1.1

但是当我将上述命令转换为docker-compose文件时,如下所示:

version: '3'
services:
    hadoop-cluster-hadoop0:
        container_name: hadoop0
        restart: always
        networks:
            pub_net:
                ipv4_address: 192.168.2.10
        volumes:
            - /tmp/hadoop0/logs:/tmp
        extra_hosts:
            - "hadoop0:192.168.1.10"
            - "hadoop1:192.168.1.11"
            - "hadoop2:192.168.1.12"
            - "dbus-n1:192.168.2.81"
        image: 'hadoop-cluster-hadoop0:v1.1'
networks:
    put_net:
      external: true 

发生以下错误。

[root@192-168-2-70 shell]# docker-compose up -d
WARNING: Some networks were defined but are not used by any service: put_net
ERROR: Service "hadoop-cluster-hadoop0" uses an undefined network "pub_net"
[root@192-168-2-70 shell]# 

有人可以帮我纠正docker-compose文件吗?如何在docker-compose文件中创建docker网络,而不是事先创建?

非常感谢您的帮助!!!

彼得·埃米尔

仔细观察,您为网络命名,put_netpub_net在服务定义中引用了它

此外,当您定义网络时,external这意味着它应该已经创建。如果您想让docker-compose为您做到这一点,可以改为这样做。

networks:
    put_net:
        driver: bridge
        ipam:
            driver: default
            config:
                - 
                  subnet: 192.168.2.0/24

如果您想完全重新创建问题中指定的网络,则必须将版本从“ 3”降级为“ 2”;这是因为在版本'3'中删除了某些功能,并且这些选项之一是指定的能力gateway(至少据我所知)。

这是您的docker-compose文件的外观。(注意将版本从“ 3”更改为“ 2”)

version: '2'
services:
    hadoop-cluster-hadoop0:
        container_name: hadoop0
        restart: always
        networks:
            put_net:
                ipv4_address: 192.168.2.10
        volumes:
            - /tmp/hadoop0/logs:/tmp
        extra_hosts:
            - "hadoop0:192.168.1.10"
            - "hadoop1:192.168.1.11"
            - "hadoop2:192.168.1.12"
            - "dbus-n1:192.168.2.81"
        image: 'hadoop-cluster-hadoop0:v1.1'
networks:
    put_net:
        driver: macvlan
        driver_opts:
            parent: eth0
        ipam:
            config:
                - 
                  subnet: 192.168.2.0/24
                  gateway: 192.168.2.1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Docker Compose文件中的网络

来自分类Dev

在 Docker 18.06 和 Docker Compose 1.20.0 中配置桥接网络和容器 CIDR 的问题

来自分类Dev

jwilder / nginx-proxy:在哪里配置网络?(不在docker-compose.yml中)

来自分类Dev

如何在Ubuntu 14.04中配置网络

来自分类Dev

如何在第2版docker-compose定义文件中定义网络?

来自分类Dev

如何在Centos中配置网络配置文件?

来自分类Dev

如何在 docker-compose 别名上配置自动完成

来自分类Dev

如何在docker-compose中将主机网络暴露给docker容器?

来自分类Dev

如何在虚拟盒子中的ubuntu上配置网络接口?

来自分类Dev

如何在虚拟盒子中的ubuntu上配置网络接口?

来自分类Dev

如何在BartPE中隐藏网络配置对话框?

来自分类Dev

如何在Windows 10中“忘记”网络wifi配置

来自分类Dev

如何在virt-manager中配置基本网络

来自分类Dev

如何在不可靠的网络环境中配置MassTransit?

来自分类Dev

Traefik 2如何在静态配置中引用tls证书以在docker-compose文件中进行路由

来自分类Dev

从docker compose中的网络别名中删除服务名称

来自分类Dev

如何在Docker Compose中运行一次命令

来自分类常见问题

如何在docker-compose中设置主机名?

来自分类Dev

如何在docker compose中运行mongodb副本集

来自分类Dev

如何在Azure Portal中传递Dockerfile或docker-compose?

来自分类Dev

如何在docker-compose中缓存构建环境

来自分类Dev

如何在 docker-compose 中访问链接服务?

来自分类Dev

如何在 docker compose 中定义通用挂载点

来自分类Dev

如何在DigitalOcean与Docker通信(网络)?

来自分类Dev

如何在Docker Compose中等待MSSQL?

来自分类Dev

如何在Dokku中使用Docker Compose?

来自分类Dev

如何在docker compose中放置参数?

来自分类Dev

如何在 docker-compose 中转义 #

来自分类Dev

如何在网络管理器中为网络接口设置默认配置文件?

Related 相关文章

  1. 1

    Docker Compose文件中的网络

  2. 2

    在 Docker 18.06 和 Docker Compose 1.20.0 中配置桥接网络和容器 CIDR 的问题

  3. 3

    jwilder / nginx-proxy:在哪里配置网络?(不在docker-compose.yml中)

  4. 4

    如何在Ubuntu 14.04中配置网络

  5. 5

    如何在第2版docker-compose定义文件中定义网络?

  6. 6

    如何在Centos中配置网络配置文件?

  7. 7

    如何在 docker-compose 别名上配置自动完成

  8. 8

    如何在docker-compose中将主机网络暴露给docker容器?

  9. 9

    如何在虚拟盒子中的ubuntu上配置网络接口?

  10. 10

    如何在虚拟盒子中的ubuntu上配置网络接口?

  11. 11

    如何在BartPE中隐藏网络配置对话框?

  12. 12

    如何在Windows 10中“忘记”网络wifi配置

  13. 13

    如何在virt-manager中配置基本网络

  14. 14

    如何在不可靠的网络环境中配置MassTransit?

  15. 15

    Traefik 2如何在静态配置中引用tls证书以在docker-compose文件中进行路由

  16. 16

    从docker compose中的网络别名中删除服务名称

  17. 17

    如何在Docker Compose中运行一次命令

  18. 18

    如何在docker-compose中设置主机名?

  19. 19

    如何在docker compose中运行mongodb副本集

  20. 20

    如何在Azure Portal中传递Dockerfile或docker-compose?

  21. 21

    如何在docker-compose中缓存构建环境

  22. 22

    如何在 docker-compose 中访问链接服务?

  23. 23

    如何在 docker compose 中定义通用挂载点

  24. 24

    如何在DigitalOcean与Docker通信(网络)?

  25. 25

    如何在Docker Compose中等待MSSQL?

  26. 26

    如何在Dokku中使用Docker Compose?

  27. 27

    如何在docker compose中放置参数?

  28. 28

    如何在 docker-compose 中转义 #

  29. 29

    如何在网络管理器中为网络接口设置默认配置文件?

热门标签

归档