-
-
Save IMHOSUNG/c9bf30b10663b9759f620b2ab61c0d08 to your computer and use it in GitHub Desktop.
Change the IP subnet of Docker's default subnet interface
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
if [ $# -lt 1 ]; then | |
echo "Usage: sudo ./change_docker_default_subnet.sh <ip/CIDR>" | |
echo " examples: " | |
echo " ./change_docker_default_subnet.sh 10.200.0.57/16" | |
echo " ./change_docker_default_subnet.sh 172.31.0.21/16" | |
echo " ./change_docker_default_subnet.sh 192.168.254.1/24" | |
echo " " | |
echo " NOTE: You should stop Docker before running this script." | |
echo " When you restart it, Docker will use the new IP." | |
echo " if you use 192.168.0.0/24 then you have to 192.168.0.1/24" | |
echo " also use" | |
echo " curl -sS https://gist.githubusercontent.com/IMHOSUNG/c9bf30b10663b9759f620b2ab61c0d08/raw/6123c9798ecd74c3b367953c439afb7187e359b3/change_docker_default_subnet.sh | sudo bash -s 192.168.254.1/24 " | |
exit 2 | |
fi | |
NEW_IP="$1" | |
DOCKER_INIT="/etc/docker" | |
echo "stop docker service" | |
sudo systemctl stop docker.service | |
echo "Removing old docker0 network(s)" | |
NETWORKS=$(ip addr list docker0 | grep "inet " | cut -d" " -f6) | |
for NET in $NETWORKS; do | |
echo " $NET" | |
ip addr del $NET dev docker0 | |
done | |
echo "Removing old iptables rules" | |
iptables -t nat -F POSTROUTING | |
iptables -F DOCKER | |
echo "Make daemon.json file" | |
touch daemon.json | |
printf '{"bip": "%s"}\n' "${NEW_IP}" > daemon.json | |
cp daemon.json $DOCKER_INIT | |
echo "starting Docker" | |
sudo systemctl start docker.service | |
echo "Remove Tmp Deamon.json File" | |
rm daemon.json | |
echo "check docker0 ip" | |
ifconfig -a | |
echo "restart ecs-agent" | |
docker restart ecs-agent | |
echo "check ecs-agent start" | |
docker ps | |
# IF YOU CAN'T RUN ECS-AGENT | |
# -> then check log use command "docker logs -t 'docker-container-id'" | |
# -> CHEKC ADD IAM Role (src : https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role) | |
# -> CHECK ECS_CLUSTER NAME [must not include " " in name] (path: /etc/ecs/ecs.config) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment