#!/bin/bash
set -xv
DIND_IMG_NAME=fabiop85/ubuntu2004-lite-dind:base
DIND_NET_NAME=dind-network
DIND_SUBNET=172.0.0.0/24
DIND_GATEWAY=172.0.0.254
CNT_NAME=ubuntu2004-dind-lite
CNT_HOSTNAME=ubuntu
CNT_NETWORK=$DIND_NET_NAME
CNT_IP=172.0.0.1
CNT_DOCKER_VOL=docker01-vol
CNT_HOME_VOL=home01-vol
CNT_ROOT_VOL=root01-vol
mkdir -vp $(pwd)/rootfs/docker
mkdir -vp $(pwd)/rootfs/home
mkdir -vp $(pwd)/rootfs/root
docker stop $CNT_NAME
docker rm $CNT_NAME
docker network rm $DIND_NET_NAME
docker volume rm $CNT_DOCKER_VOL $CNT_HOME_VOL $CNT_ROOT_VOL
docker network create \
--driver=bridge \
--subnet=$DIND_SUBNET \
--gateway=$DIND_GATEWAY \
$DIND_NET_NAME
docker volume create --driver local \
--opt type=none \
--opt device=$(pwd)/rootfs/docker \
--opt o=bind \
$CNT_DOCKER_VOL
docker volume create --driver local \
--opt type=none \
--opt device=$(pwd)/rootfs/home \
--opt o=bind \
$CNT_HOME_VOL
docker volume create --driver local \
--opt type=none \
--opt device=$(pwd)/rootfs/root \
--opt o=bind \
$CNT_ROOT_VOL
docker run -dit \
--name=$CNT_NAME \
--hostname=$CNT_HOSTNAME \
--network=$DIND_NET_NAME \
--ip=$CNT_IP \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /dev:/dev:ro \
-v /lib/modules:/lib/modules:ro \
-v /dev/fuse:/dev/fuse:rw \
-v $CNT_DOCKER_VOL:/var/lib/docker \
-v $CNT_HOME_VOL:/home/ubuntu \
-v $CNT_ROOT_VOL:/root \
--privileged \
--security-opt apparmor:unconfined \
--security-opt seccomp:unconfined \
-p 2201:22 \
$DIND_IMG_NAME
#!/bin/bash
set -xv
DIND_NET_NAME=dind-network
CNT_NAME=ubuntu2004-dind-lite
CNT_DOCKER_VOL=docker01-vol
CNT_HOME_VOL=home01-vol
CNT_ROOT_VOL=root01-vol
docker stop $CNT_NAME
docker rm $CNT_NAME
docker network rm $DIND_NET_NAME
docker volume rm $CNT_DOCKER_VOL $CNT_HOME_VOL $CNT_ROOT_VOL
#!/bin/bash
# Utils functions
green='\e[32m'
blue='\e[34m'
clear='\e[0m'
ColorGreen(){
echo -ne $green$1$clear
}
ColorBlue(){
echo -ne $blue$1$clear
}
# Env for Dind
# ------------
DIND_IMG_NAME=fabiop85/ubuntu2004-lite-dind:base
DIND_NET_NAME=dind-network
DIND_SUBNET=172.0.0.0/24
DIND_GATEWAY=172.0.0.254
CNT_NAME=ubuntu2004-dind-lite
CNT_HOSTNAME=ubuntu
CNT_NETWORK=$DIND_NET_NAME
CNT_IP=172.0.0.1
CNT_DOCKER_VOL=docker01-vol
CNT_HOME_VOL=home01-vol
CNT_ROOT_VOL=root01-vol
# Env for commit
# --------------
# pip install docker-squash
# https://github.com/goldmann/docker-squash
# to modify
BS_IMG=fabiop85/ubuntu2004-lite-dind:base # After first commit this line can be commented
IMG=fabiop85/ubuntu2004-lite-dind:base-committed
CNT=ubuntu2004-dind-lite
# Functions
function start_restart() {
mkdir -vp $(pwd)/rootfs/docker
mkdir -vp $(pwd)/rootfs/home
mkdir -vp $(pwd)/rootfs/root
docker stop $CNT_NAME
docker rm $CNT_NAME
docker network rm $DIND_NET_NAME
docker volume rm $CNT_DOCKER_VOL $CNT_HOME_VOL $CNT_ROOT_VOL
docker network create \
--driver=bridge \
--subnet=$DIND_SUBNET \
--gateway=$DIND_GATEWAY \
$DIND_NET_NAME
docker volume create --driver local \
--opt type=none \
--opt device=$(pwd)/rootfs/docker \
--opt o=bind \
$CNT_DOCKER_VOL
docker volume create --driver local \
--opt type=none \
--opt device=$(pwd)/rootfs/home \
--opt o=bind \
$CNT_HOME_VOL
docker volume create --driver local \
--opt type=none \
--opt device=$(pwd)/rootfs/root \
--opt o=bind \
$CNT_ROOT_VOL
docker run -dit \
--name=$CNT_NAME \
--hostname=$CNT_HOSTNAME \
--network=$DIND_NET_NAME \
--ip=$CNT_IP \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /dev:/dev:ro \
-v /lib/modules:/lib/modules:ro \
-v /dev/fuse:/dev/fuse:rw \
-v $CNT_DOCKER_VOL:/var/lib/docker \
-v $CNT_HOME_VOL:/home/ubuntu \
-v $CNT_ROOT_VOL:/root \
--privileged \
--security-opt apparmor:unconfined \
--security-opt seccomp:unconfined \
-p 2201:22 \
$DIND_IMG_NAME
}
function stop_clear() {
docker stop $CNT_NAME
docker rm $CNT_NAME
docker network rm $DIND_NET_NAME
docker volume rm $CNT_DOCKER_VOL $CNT_HOME_VOL $CNT_ROOT_VOL
}
function restart() {
docker stop $CNT_NAME
docker start $CNT_NAME
}
function commit() {
# clean (for debian images)
docker exec -it $CNT apt clean
docker exec -it $CNT apt autoclean
docker exec -it $CNT apt autoremove -y
docker exec -it $CNT rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# commit
docker commit $CNT $IMG
# stop and remove
docker stop $CNT
docker rm $CNT
# squash
docker-squash -f $(($(docker history $IMG | wc -l | xargs)-1)) -t $IMG $IMG
# remove old image
docker rmi -f $BS_IMG
# remove dangling
echo "y" | docker image prune
# remove cache builder
echo "y" | docker builder prune
}
menu(){
echo -ne "
Docker in Docker
$(ColorGreen '1)') Start/Restart Dind
$(ColorGreen '2)') Stop and Clean Dind
$(ColorGreen '3)') Restart container: $CNT_NAME
$(ColorGreen '4)') Commit Dind Image in: $IMG
$(ColorGreen '0)') Esci
$(ColorBlue 'Scegli la funzione da eseguire:') "
read a
case $a in
1) start_restart ; echo "Task terminato correttamente" ; exit 0 ;;
2) stop_clear ; echo "Task terminato correttamente" ; exit 0 ;;
3) restart ; echo "Task terminato correttamente" ; exit 0 ;;
4) commit ; echo "Task terminato correttamente" ; exit 0 ;;
0) echo "Uscita: script menu terminato correttamente"; exit 0 ;;
*) echo -e $red"Hai inserito un opzione errata, ritorno al menu "$clear; menu;;
esac
}
# Call menu or direct functions
if [ $# -eq 0 ]
then
menu
else
"$@"
fi
#!/bin/bash
# Utils functions
green='\e[32m'
blue='\e[34m'
clear='\e[0m'
ColorGreen(){
echo -ne $green$1$clear
}
ColorBlue(){
echo -ne $blue$1$clear
}
# Env for Dind
# ------------
DIND_IMG_NAME=fabiop85/ubuntu2004-lite-dind:base
DIND_NET_NAME=dind-network
DIND_SUBNET=172.0.0.0/24
DIND_GATEWAY=172.0.0.254
CNT_NAME=ubuntu2004-dind-lite
CNT_HOSTNAME=ubuntu
CNT_NETWORK=$DIND_NET_NAME
CNT_IP=172.0.0.1
CNT_DOCKER_VOL=docker01-vol
CNT_HOME_VOL=home01-vol
CNT_ROOT_VOL=root01-vol
# Env for commit
# --------------
# pip install docker-squash
# https://github.com/goldmann/docker-squash
# to modify
BS_IMG=fabiop85/ubuntu2004-lite-dind:base # After first commit this line can be commented
IMG=fabiop85/ubuntu2004-lite-dind:base-committed
CNT=ubuntu2004-dind-lite
# Functions
function start_restart() {
mkdir -vp $(pwd)/rootfs/docker
mkdir -vp $(pwd)/rootfs/home
mkdir -vp $(pwd)/rootfs/root
docker stop $CNT_NAME
docker rm $CNT_NAME
docker network rm $DIND_NET_NAME
docker volume rm $CNT_DOCKER_VOL $CNT_HOME_VOL $CNT_ROOT_VOL
docker network create \
--driver=bridge \
--subnet=$DIND_SUBNET \
--gateway=$DIND_GATEWAY \
$DIND_NET_NAME
docker volume create --driver local \
--opt type=none \
--opt device=$(pwd)/rootfs/docker \
--opt o=bind \
$CNT_DOCKER_VOL
docker volume create --driver local \
--opt type=none \
--opt device=$(pwd)/rootfs/home \
--opt o=bind \
$CNT_HOME_VOL
docker volume create --driver local \
--opt type=none \
--opt device=$(pwd)/rootfs/root \
--opt o=bind \
$CNT_ROOT_VOL
docker run -dit \
--runtime=sysbox-runc \
--name=$CNT_NAME \
--hostname=$CNT_HOSTNAME \
--network=$DIND_NET_NAME \
--ip=$CNT_IP \
-v $CNT_DOCKER_VOL:/var/lib/docker \
-v $CNT_HOME_VOL:/home/ubuntu \
-v $CNT_ROOT_VOL:/root \
-p 2201:22 \
$DIND_IMG_NAME
}
function stop_clear() {
docker stop $CNT_NAME
docker rm $CNT_NAME
docker network rm $DIND_NET_NAME
docker volume rm $CNT_DOCKER_VOL $CNT_HOME_VOL $CNT_ROOT_VOL
}
function restart() {
docker stop $CNT_NAME
docker start $CNT_NAME
}
function commit() {
# clean (for debian images)
docker exec -it $CNT apt clean
docker exec -it $CNT apt autoclean
docker exec -it $CNT apt autoremove -y
docker exec -it $CNT rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# commit
docker commit $CNT $IMG
# stop and remove
docker stop $CNT
docker rm $CNT
# squash
docker-squash -f $(($(docker history $IMG | wc -l | xargs)-1)) -t $IMG $IMG
# remove old image
docker rmi -f $BS_IMG
# remove dangling
echo "y" | docker image prune
# remove cache builder
echo "y" | docker builder prune
}
menu(){
echo -ne "
Docker in Docker
$(ColorGreen '1)') Start/Restart Dind
$(ColorGreen '2)') Stop and Clean Dind
$(ColorGreen '3)') Restart container: $CNT_NAME
$(ColorGreen '4)') Commit Dind Image in: $IMG
$(ColorGreen '0)') Esci
$(ColorBlue 'Scegli la funzione da eseguire:') "
read a
case $a in
1) start_restart ; echo "Task terminato correttamente" ; exit 0 ;;
2) stop_clear ; echo "Task terminato correttamente" ; exit 0 ;;
3) restart ; echo "Task terminato correttamente" ; exit 0 ;;
4) commit ; echo "Task terminato correttamente" ; exit 0 ;;
0) echo "Uscita: script menu terminato correttamente"; exit 0 ;;
*) echo -e $red"Hai inserito un opzione errata, ritorno al menu "$clear; menu;;
esac
}
# Call menu or direct functions
if [ $# -eq 0 ]
then
menu
else
"$@"
fi
Content type
Image
Digest
Size
248.3 MB
Last updated
almost 5 years ago
docker pull fabiop85/ubuntu2004-lite-dind:base