如何解决如何在docker-compose中为我现有的外部网络的容器设置静态IP?
我有以下docker-compose.yml(用于创建VPN客户端可以访问的VPN + docker网络):
version: "3"
services: wireguard:
image: linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=America/Santiago
- SERVERURL=auto #optional
- SERVERPORT=51820 #optional
- PEERS=5 #optional
- PEERDNS=auto #optional
- INTERNAL_SUBNET=10.13.13.0 #optional
volumes:
- ./config:/config
- ./lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
以上内容构成了一个名为 wireguard_default 的网络:
"Name": "wireguard_default","Id": "ecc19ea95073e2c1ba785fe240c29027f39d1b47977b0f1bdff5c064d6188e81","Created": "2020-08-15T20:59:36.238911179Z","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {
"Driver": "default","Options": null,"Config": [
{
"Subnet": "172.23.0.0/16","Gateway": "172.23.0.1"
}
]
},
因此,我创建了一个网络服务器,其内容如下:
version: '3'
services:
web:
container_name: web
image: nginx
restart: unless-stopped
expose:
- "80"
volumes:
- ./:/usr/share/nginx/html:ro
networks:
default:
networks:
default:
external:
name: wireguard_default
撰写该邮件会自动设置一个IP,当我连接到VPN时,该IP允许从我的浏览器(http://172.23.0.3)访问网络。
"Gateway": "172.23.0.1","IPAddress": "172.23.0.3","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:17:00:03","DriverOpts": null
到目前为止,一切正常。但是我需要在Web服务器中为Nginx容器设置一个STATIC IP(例如:172.23.0.25)。
我该如何在组合中设置一个静态IP,使其可以连接到VPN Compose创建的外部网络?
解决方法
是的!
我明白了。
我只是编辑VPN组成,以在“网络”选项中添加子网:
version: "3"
services: wireguard:
image: linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=America/Santiago
- SERVERURL=auto #optional
- SERVERPORT=51820 #optional
- PEERS=5 #optional
- PEERDNS=auto #optional
- INTERNAL_SUBNET=10.13.13.0 #optional
volumes:
- ./config:/config
- ./lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
networks:
default:
ipam:
config:
- subnet: 172.23.0.0/24
并在要连接的每个docker的compose networks选项中添加静态IP。
version: '3.7'
services:
web:
container_name: web
image: nginx
restart: unless-stopped
expose:
- "80"
volumes:
- ./:/usr/share/nginx/html:ro
networks:
default:
ipv4_address: 172.23.0.25
networks:
default:
external:
name: wireguard_default
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。