USE_PROCD=1
START=25
-extra_command "uciadd" "Add default bridge configuration to network and firewall uci config"
-extra_command "ucidel" "Delete default bridge configuration from network and firewall uci config"
+extra_command "uciadd" "<interface> <device> <zone> Add docker bridge configuration to network and firewall uci config"
+extra_command "ucidel" "<interface> <device> <zone> Delete docker bridge configuration from network and firewall uci config"
DOCKER_CONF_DIR="/tmp/dockerd"
DOCKERD_CONF="${DOCKER_CONF_DIR}/daemon.json"
}
uciadd() {
+ local iface="$1"
+ local device="$2"
+ local zone="$3"
+
+ [ -z "$iface" ] && {
+ iface="docker"
+ device="docker0"
+ zone="docker"
+ }
+
/etc/init.d/dockerd running && {
echo "Please stop dockerd service first"
exit 0
}
# Add network interface
- if ! uci_quiet get network.docker; then
- logger -t "dockerd-init" -p notice "Adding docker default interface to network uci config (docker)"
+ if ! uci_quiet get network.${iface}; then
+ logger -t "dockerd-init" -p notice "Adding docker default interface to network uci config (${iface})"
uci_quiet add network interface
- uci_quiet rename network.@interface[-1]="docker"
- uci_quiet set network.docker.ifname="docker0"
- uci_quiet set network.docker.proto="static"
- uci_quiet set network.docker.auto="0"
+ uci_quiet rename network.@interface[-1]="${iface}"
+ uci_quiet set network.@interface[-1].ifname="${device}"
+ uci_quiet set network.@interface[-1].proto="static"
+ uci_quiet set network.@interface[-1].auto="0"
uci_quiet commit network
fi
# Add docker bridge device
- if ! uci_quiet get network.docker0; then
- logger -t "dockerd-init" -p notice "Adding docker default bridge device to network uci config (docker0)"
+ if ! uci_quiet get network.${device}; then
+ logger -t "dockerd-init" -p notice "Adding docker default bridge device to network uci config (${device})"
uci_quiet add network device
- uci_quiet rename network.@device[-1]="docker0"
- uci_quiet set network.docker0.type="bridge"
- uci_quiet set network.docker0.name="docker0"
- uci_quiet add_list network.docker0.ifname="docker0"
+ uci_quiet rename network.@device[-1]="${device}"
+ uci_quiet set network.@device[-1].type="bridge"
+ uci_quiet set network.@device[-1].name="${device}"
+ uci_quiet add_list network.@device[-1].ifname="${device}"
uci_quiet commit network
fi
# Add firewall zone
- if ! uci_quiet get firewall.docker; then
- logger -t "dockerd-init" -p notice "Adding docker default firewall zone to firewall uci config (docker)"
+ if ! uci_quiet get firewall.${zone}; then
+ logger -t "dockerd-init" -p notice "Adding docker default firewall zone to firewall uci config (${zone})"
uci_quiet add firewall zone
- uci_quiet rename firewall.@zone[-1]="docker"
- uci_quiet set firewall.docker.network="docker"
- uci_quiet set firewall.docker.input="REJECT"
- uci_quiet set firewall.docker.output="ACCEPT"
- uci_quiet set firewall.docker.forward="REJECT"
- uci_quiet set firewall.docker.name="docker"
+ uci_quiet rename firewall.@zone[-1]="${zone}"
+ uci_quiet set firewall.@zone[-1].network="${iface}"
+ uci_quiet set firewall.@zone[-1].input="REJECT"
+ uci_quiet set firewall.@zone[-1].output="ACCEPT"
+ uci_quiet set firewall.@zone[-1].forward="REJECT"
+ uci_quiet set firewall.@zone[-1].name="${zone}"
uci_quiet commit firewall
fi
}
ucidel() {
+ local iface="$1"
+ local device="$2"
+ local zone="$3"
+
+ [ -z "$iface" ] && {
+ iface="docker"
+ device="docker0"
+ zone="docker"
+ }
+
/etc/init.d/dockerd running && {
echo "Please stop dockerd service first"
exit 0
}
- logger -t "dockerd-init" -p notice "Deleting docker default bridge device from network uci config (docker0)"
- uci_quiet delete network.docker0
- uci_quiet commit network
+ if uci_quiet get network.${device}; then
+ logger -t "dockerd-init" -p notice "Deleting docker default bridge device from network uci config (${device})"
+ uci_quiet delete network.${device}
+ uci_quiet commit network
+ fi
- logger -t "dockerd-init" -p notice "Deleting docker default interface from network uci config (docker)"
- uci_quiet delete network.docker
- uci_quiet commit network
+ if uci_quiet get network.${iface}; then
+ logger -t "dockerd-init" -p notice "Deleting docker default interface from network uci config (${iface})"
+ uci_quiet delete network.${iface}
+ uci_quiet commit network
+ fi
- logger -t "dockerd-init" -p notice "Deleting docker firewall zone from firewall uci config (docker)"
- uci_quiet delete firewall.docker
- uci_quiet commit firewall
+ if uci_quiet get firewall.${zone}; then
+ logger -t "dockerd-init" -p notice "Deleting docker firewall zone from firewall uci config (${zone})"
+ uci_quiet delete firewall.${zone}
+ uci_quiet commit firewall
+ fi
reload_config
}