如何在docker compose中配置网络?
在主机中,我使用以下命令创建了docker网络:如何在docker compose中配置网络?,docker,docker-compose,Docker,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 DRIV
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 run--net=pub_net--ip=192.168.2.10--name Hadoop 0--hostname
hadoop 0-d-P hadoop-cluster-hadoop 0: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撰写的文件吗?
如何在docker compose文件中创建docker网络,而不是预先创建
非常感谢你的帮助 仔细看,您将您的网络命名为
put\u net
,但在您的服务定义中将其引用为pub\u net
此外,当您将网络定义为external
时,这意味着应该已经创建了网络。如果你想让docker compose为你做这件事,你可以这样做
networks:
put_net:
driver: bridge
ipam:
driver: default
config:
-
subnet: 192.168.2.0/24
如果您想完全重新创建问题中指定的网络,则必须将版本从“3”降级为“2”;这是因为在版本“3”中删除了某些功能,其中一个选项是指定网关的功能(至少据我所知)
下面是docker compose文件的外观。(请注意版本从“3”更改为“2”)
谢谢你的回复。我的坏…,但根据您应用的docker compose文件,只提供了子网参数,如何组合以下命令的其他参数?docker network create-d macvlan \--subnet=192.168.2.0/24 \--gateway=192.168.2.1 \-o parent=eth0 pub_netYes我忘了添加它,我的坏朋友。我现在更新了我的答案,包括如何重新创建这个精确的网络。
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