gpt4 book ai didi

Docker:如何控制/定义默认网关设置

转载 作者:行者123 更新时间:2023-12-02 01:03:17 25 4
gpt4 key购买 nike

任何人都可以阐明 Docker Compose YML 文件的含义吗?我想做的就是能够控制各个容器的IP地址。我正在使用版本 3.1(但也尝试过 3.3,因为我最近升级到版本 17.06)。文档说:

A full example:

ipam:
driver: default
config:
- subnet: 172.28.0.0/16
Note: Additional IPAM configurations, such as gateway, are only honored for version 2 at the moment.

当我这样做时,我需要在检查网络时尊重该子网。然而,网关完全不同[阅读上面的注释:,因此容器不会启动。为什么他们在版本 3 中失去了在版本 2 中有效的功能(目前)?更糟糕的是,为什么在 3.2 或 3.3 版本中没有恢复这一点?

也许我在这里离基地很远 - 当然不是第一次!对我来说最重要的是:有没有办法修改 compose 文件以允许 docker stack deploy 命令(在 Docker Swarm 中)提供对网关和使用了子网吗?

最佳答案

终于弄清楚了这一点,我发布了我所做的事情,希望对其他人有帮助。虽然我开始时并不知道这一点,但我真正想要的是什么[需要? :)]要做的是重新定义docker_gwbridge网络的默认设置。

我就是这样做的:

docker swarm init     # I am assuming this was already done, this creates the network with default settings
docker swarm leave -f # only if you did an 'init'
docker network ls # just to see the docker_gwbridge network
docker network rm docker_gwbridge

# if you never created/initialized a swarm, you can start here
SUBNET=172.19.0.0/16 # my defaults were always 172.18, using 19 only to test that this works
GATEWAY=172.19.0.1
docker network create --subnet=$SUBNET --gateway $GATEWAY \
-o com.docker.network.bridge.name=docker_gwbridge \
-o com.docker.network.bridge.enable_icc=false \
-o com.docker.network.bridge.enable_ip_masquerade=true \
docker_gwbridge
docker swarm init # now start the swarm
docker network inspect docker_gwbridge # if you want to see your changes
docker stack deploy --compose-file yourFile.yml YOURSTACKNAME

现在,您的所有容器都在您定义的子网上启动,并使用您指定的网关。

关于Docker:如何控制/定义默认网关设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45613476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com