#!/bin/env bash ##################################################################### # REMOVE DOCKER DESKTOP FOR MAC (OPTIONAL: IF INSTALLED) ##################################################################### echo "" echo "Removing Docker Desktop for Mac..." # 1. make sure docker running sudo launchctl start com.docker.docker # 2. clean up while still running docker rmi -f $(docker images -a -q) docker rm -f $(docker ps -a -q) docker volume rm $(docker volume ls -q) # 2. then turn off Docker Desktop for Mac sudo launchctl stop com.docker.docker # 3. then open Finder > Applications and "Move to Trash" and "Empty Trash" for "Docker" app sudo rm -rf /Applications/Docker # 4. remove leftover files paths=( "~/Library/Cookies/com.docker.docker.binarycookies" "~/Library/Logs/Docker Desktop" "~/Library/Application Support/Docker Desktop" "~/Library/Caches/com.docker.docker" "~/Library/Group Containers/group.com.docker" "~/Library/Saved Application State/com.electron.docker-frontend.savedState" "/Library/PrivilegedHelperTools/com.docker.vmnetd" "/Library/LaunchDaemons/com.docker.vmnetd.plist" "/usr/local/lib/docker" "~/.docker" ) for path in "${paths[@]}"; do eval rm -rf $path echo "Deleted: $path" done echo "" echo "DONE." ##################################################################### # INSTALL COLIMA WITH BUILDX, DOCKER, KUBECTL ##################################################################### echo "" echo "Installing Colima ..." # 1. install colima brew install colima # 2. install docker brew install docker # 3. install buildx brew install docker-buildx # 4. install kubectl brew install kubectl # link buildx mkdir -p ~/.docker/cli-plugins/ ln -sfn $(which docker-buildx) ~/.docker/cli-plugins/docker-buildx # start colima brew services start colima # wait a minute or two for vm and container runtime then test sleep 30 docker images # hooray! echo "" echo "DONE." ##################################################################### # ENSURE CONTAINERS CAN REACH HOST NETWORK (OPTIONAL) ##################################################################### echo "" echo "Testing networking ..." # print out bridge network gateway IP docker network inspect bridge -f '{{range .IPAM.Config}}{{.Gateway}}{{end}}' # add flag for container run to point to host via DNS and print IP address docker run -it --rm --add-host=host.docker.internal:host-gateway busybox ping host.docker.internal # test databases docker run -it --rm --add-host=host.docker.internal:host-gateway busybox nc -zv host.docker.internal 5432 # postgres docker run -it --rm --add-host=host.docker.internal:host-gateway busybox nc -zv host.docker.internal 6379 # redis echo "" echo "DONE." exit 0