如何给docker容器指定固定ip
docker网络模式有bridge,host,none三种,默认使用bridge桥接模式,但是此模式默认只能使用DHCP自动分配IP,而且不能使用服务名字作为host直接访问,这会导致每次重启容器,IP都会变动,不易维护。要想使用固定IP,只能使用自建的docker网络。
.创建自定义bridge网络
1
docker network create --driver bridge --subnet=10.0.2.0/24 --gateway=10.0.2.1 mynet
docker-compose指定网络,并设置ip
部署mysql8,指定IP地址10.0.2.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24version: "3"
services:
mysql:
image: mysql:8.0
container_name: mysql8
hostname: mysql8
restart: unless-stopped
networks:
mysql_net:
ipv4_address: 10.0.2.2 #指定容器内固定ip
ports:
- "3306:3306"
volumes:
- /xxx/my.conf:/etc/mysql/my.cnf
- /xxx/logs:/var/log
- /xxx/data:/var/lib/mysql
environment:
PUID: 0
PGID: 0
TZ: Asia/Shanghai
networks:
mysql_net:
external:
name: mynet #使用自定义网络部署freshrss,指定IP地址10.0.2.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: "3"
services:
freshrss-app:
image: freshrss/freshrss:latest
container_name: freshrss-app
hostname: freshrss-app
restart: unless-stopped
networks:
freshrss_net:
ipv4_address: 10.0.2.3
ports:
- "12080:80"
volumes:
- /xxx/data:/var/www/FreshRSS/data
- /xxx/extensions:/var/www/FreshRSS/extensions
environment:
PUID: 1000
PGID: 0
CRON_MIN: '*/45'
TZ: Asia/Shanghai
networks:
freshrss_net:
external:
name: mynet这样即可在freshrss配置中指定mysql的host为mysql8,容器内达到网络互通
