├── .docker_missing_tools_repositories ├── README.md ├── docker__clean.sh ├── docker__credentials.py ├── docker__login.sh ├── docker_build.sh ├── docker_build_and_deploy.sh ├── docker_build_and_release.sh ├── docker_deploy.sh ├── docker_init.sh ├── docker_logs.sh ├── docker_logs_down.sh ├── docker_logs_f.sh ├── docker_logs_up.sh ├── docker_ls.sh ├── docker_missing_tools_install.sh ├── docker_missing_tools_uninstall.sh ├── docker_ps.sh └── docker_reset.sh /.docker_missing_tools_repositories: -------------------------------------------------------------------------------- 1 | 2 | machine docker.io/my-username 3 | login my-username 4 | password my-password 5 | 6 | machine my-repository.my-domain.com 7 | login "my-username@my-domain.com" 8 | password my-password 9 | 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker Missing Tools 2 | 3 | A set of commands to make docker dev-ops easier. 4 | 5 | Docker Missing Tools help to automate dev-ops tasks without including noise to source code. 6 | 7 | Avoid creating typical helper scripts like "build.sh" and "deploy.sh" inside shared code repositories. 8 | 9 | 10 | ## ls 11 | 12 | List everything (stacks, services, container, images, volumes) at once: 13 | ``` 14 | $ docker_ls 15 | ``` 16 | 17 | ## reset 18 | 19 | Remove everything (except volumes) at once: 20 | ``` 21 | $ docker_reset 22 | ``` 23 | 24 | ## init 25 | 26 | Initialize a swarm: 27 | ``` 28 | $ docker_init 29 | ``` 30 | 31 | ## build and deploy 32 | 33 | Create an image from your source code (and a Dockerfile) and deploy it (according a docker-stack.yml) with the rest of the stack: 34 | ``` 35 | $ docker_build_and_deploy TARGET IMAGE STACK [docker-stack.yml] [Dockerfile] 36 | ``` 37 | Arguments description: 38 | - TARGET: is the directory with the source code to build. 39 | - IMAGE: is the name for the new image. 40 | - STACK: is the name for the new stack. 41 | - docker-stack.yml: (optional) is the YML file where the new stack is defined. 42 | - Dockerfile: (optional) is the Docker file where the new image is defined (must exist inside TARGET directory). 43 | 44 | 45 | ## build and release 46 | 47 | Create an image from your source code (and a Dockerfile) and upload it to a Docker registry: 48 | ``` 49 | docker_build_and_release TARGET IMAGE VERSION REPOSITORY [Dockerfile] 50 | ``` 51 | Arguments description: 52 | - TARGET: is the directory with the source code to build. 53 | - IMAGE: is the name for the new image. 54 | - VERSION: is the tag for the new image. 55 | - REPOSITORY: is the Docker repository where image will be uploaded to. 56 | - Dockerfile: (optional) is the Docker file where the new image is defined (must exist inside TARGET directory). 57 | 58 | ## deploy 59 | 60 | Deploy an stack (docker-stack.yml): 61 | ``` 62 | docker_deploy STACK [docker-stack.yml] 63 | ``` 64 | Arguments description: 65 | - STACK: is the name for the new stack. 66 | - docker-stack.yml: (optional) is the YML file where the new stack is defined. 67 | 68 | 69 | ## logs 70 | 71 | Display logs from containers in any status: 72 | ``` 73 | docker_logs STACK 74 | ``` 75 | Arguments description: 76 | - STACK: filter containers by stack name. 77 | 78 | ## logs up 79 | 80 | Display logs from containers in "running" status: 81 | ``` 82 | docker_logs_up STACK 83 | ``` 84 | Arguments description: 85 | - STACK: filter containers by stack name. 86 | 87 | ## logs down 88 | 89 | Display logs from containers in "created", "restarting", "removing", "paused", "exited" or "dead" status: 90 | ``` 91 | docker_logs_down STACK 92 | ``` 93 | Arguments description: 94 | - STACK: filter containers by stack name. 95 | 96 | ## logs from service 97 | 98 | Display logs from dockerd service: 99 | ``` 100 | docker_logs_f 101 | ``` 102 | 103 | # Install Docker Missing Tools 104 | 105 | Get the scripts and move them to local "bin" directory: 106 | ``` 107 | git clone https://github.com/nandoquintana/docker-missing-tools.git ~/docker_missing_tools 108 | cd ~/docker_missing_tools 109 | ./docker_missing_tools_install.sh 110 | ``` 111 | Update your Docker repositories credentials file: 112 | ``` 113 | emacs ~/.docker_missing_tools_repositories 114 | ``` 115 | 116 | Include your URLs, USERs and PASSs there in [.netrc file format](https://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-file.html). For example: 117 | ``` 118 | machine docker.io/my-username 119 | login my-username 120 | password my-password 121 | 122 | machine my-repository.my-domain.com 123 | login "my-username@my-domain.com" 124 | password my-password 125 | 126 | ``` 127 | 128 | Remember to install [Python](https://packages.ubuntu.com/python) and [Docker CE](https://docs.docker.com/install/linux/docker-ce/ubuntu/) :-) 129 | 130 | # Uninstall Docker Missing Tools 131 | 132 | ``` 133 | cd ~/docker_missing_tools 134 | ./docker_missing_tools_uninstall.sh 135 | ``` 136 | -------------------------------------------------------------------------------- /docker__clean.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | [ "$#" -eq 0 ] || die "[docker-tools] 0 arguments required, $# provided" 6 | 7 | echo " " 8 | echo "[docker-tools] removing not running CONTAINERs ..." 9 | echo " " 10 | 11 | # "running" "restarting" "running" "removing" 12 | for status in "created" "paused" "exited" "dead" 13 | do 14 | for container in $(docker container ls --filter "status=$status" -q); do 15 | 16 | docker container rm -f ${container}; 17 | 18 | done 19 | done 20 | 21 | echo " " 22 | echo "[docker-tools] removing dangling IMAGEs ..." 23 | echo " " 24 | 25 | for image in $(docker images ls --filter "dangling=true" -q); do 26 | docker image rm ${image}; 27 | done 28 | -------------------------------------------------------------------------------- /docker__credentials.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import sys 4 | 5 | from os.path import expanduser 6 | from netrc import netrc 7 | 8 | 9 | def main(argv=None): 10 | """ """ 11 | # if argv is None: 12 | # args = sys.argv[1:] 13 | # 14 | # if len(args) != 0: 15 | # print "[docker-tools] 0 argument required, %i provided" % len(args) 16 | # return 0 17 | 18 | filename = expanduser("~/.docker_missing_tools_repositories") 19 | 20 | try: 21 | n = netrc(filename) 22 | hosts = n.hosts.keys() 23 | except IOError: 24 | hosts = None 25 | 26 | if hosts is None: 27 | return 0 28 | 29 | for host in hosts: 30 | 31 | try: 32 | n = netrc(filename) 33 | credentials = n.hosts.get(host, None) 34 | except IOError: 35 | credentials = None 36 | 37 | if credentials is not None: 38 | 39 | try: 40 | username = credentials[0] 41 | except IndexError: 42 | username = " " 43 | try: 44 | password = credentials[2] 45 | except IndexError: 46 | password = " " 47 | 48 | sys.stdout.write("%s %s %s\n" % (host, username, password)) 49 | 50 | return 0 51 | 52 | 53 | if __name__ == "__main__": 54 | main() 55 | -------------------------------------------------------------------------------- /docker__login.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | # [ "$#" -eq 0 ] || die "[docker-tools] no argument required, $# provided" 6 | 7 | DOCKER_MISSING_TOOLS=$(dirname $(readlink -f $0)) 8 | credentials=$(python $DOCKER_MISSING_TOOLS/docker__credentials.py) 9 | arr=($credentials) 10 | 11 | i=1 12 | for credential in "${arr[@]}" 13 | do 14 | if [ $((i % 3)) == 1 ]; then 15 | REPO=$credential; 16 | fi 17 | if [ $((i % 3)) == 2 ]; then 18 | USER=$credential; 19 | fi 20 | if [ $((i % 3)) == 0 ]; then 21 | PASS=$credential; 22 | echo "[docker-tools] docker login --username $USER $REPO --password-stdin" 23 | echo $PASS | docker login --username $USER $REPO --password-stdin 24 | #docker login -u $USER -p $PASS $REPO 25 | 26 | fi 27 | ((i++)) 28 | 29 | done 30 | -------------------------------------------------------------------------------- /docker_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | if [ "$#" -ne 5 ]; then 6 | if [ "$#" -ne 4 ]; then 7 | [ "$#" -eq 3 ] || die "[docker-tools] 3 (or 4) arguments required ('TARGET name', IMAGE name', 'Dockerfile'), $# provided" 8 | fi 9 | fi 10 | 11 | DOCKER_MISSING_TOOLS=$(dirname $(readlink -f $0)) 12 | source $DOCKER_MISSING_TOOLS/docker__login.sh 13 | 14 | TARGET="$1" 15 | IMAGE="$2" 16 | VERSION="dev" 17 | # REPO not needed... 18 | # STACK not needed... 19 | # DOCKERSTACKFILE not needed... 20 | DOCKERFILE=${5:-"Dockerfile"} 21 | 22 | cd $TARGET 23 | docker build . -f $DOCKERFILE -t $IMAGE 24 | docker tag $IMAGE "$IMAGE":$VERSION 25 | # dont' push to any REPO 26 | cd .. 27 | 28 | # dont' deplay any STACK 29 | -------------------------------------------------------------------------------- /docker_build_and_deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | if [ "$#" -ne 5 ]; then 6 | if [ "$#" -ne 4 ]; then 7 | [ "$#" -eq 3 ] || die "[docker-tools] 3 (or 4) arguments required ('TARGET name', IMAGE name', 'STACK name', 'docker-stack.yml' and 'Dockerfile'), $# provided" 8 | fi 9 | fi 10 | 11 | DOCKER_MISSING_TOOLS=$(dirname $(readlink -f $0)) 12 | source $DOCKER_MISSING_TOOLS/docker__login.sh 13 | 14 | TARGET="$1" 15 | IMAGE="$2" 16 | VERSION="dev" 17 | # REPO not needed... 18 | STACK="$3" 19 | DOCKERSTACKFILE=${4:-"docker-stack-dev.yml"} 20 | DOCKERFILE=${5:-"Dockerfile"} 21 | 22 | cd $TARGET 23 | docker build . -f $DOCKERFILE -t $IMAGE 24 | docker tag $IMAGE "$IMAGE":$VERSION 25 | # dont' push to any REPO 26 | cd .. 27 | 28 | docker stack deploy -c $DOCKERSTACKFILE $STACK --with-registry-auth 29 | -------------------------------------------------------------------------------- /docker_build_and_release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | if [ "$#" -ne 5 ]; then 6 | [ "$#" -eq 4 ] || die "[docker-tools] 4 (or 5) arguments required ('TARGET name', 'IMAGE name', 'VERSION name', 'REPOsitory' and 'Dockerfile'), $# provided" 7 | fi 8 | 9 | DOCKER_MISSING_TOOLS=$(dirname $(readlink -f $0)) 10 | source $DOCKER_MISSING_TOOLS/docker__login.sh 11 | 12 | TARGET="$1" 13 | IMAGE="$2" 14 | VERSION="$3" 15 | REPO="$4" 16 | # STACK not needed... 17 | DOCKERFILE=${5:-"Dockerfile"} 18 | 19 | cd $TARGET 20 | docker build . -f $DOCKERFILE -t $IMAGE 21 | docker tag $IMAGE $REPO"/"$IMAGE":"$VERSION 22 | docker push $REPO"/"$IMAGE":"$VERSION 23 | cd .. 24 | 25 | # dont' deploy any STACK 26 | -------------------------------------------------------------------------------- /docker_deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | if [ "$#" -ne 2 ]; then 6 | [ "$#" -eq 1 ] || die "[docker-tools] 1 (or 2) arguments required ('STACK name', 'docker-stack.yml'), $# provided" 7 | fi 8 | 9 | DOCKER_MISSING_TOOLS=$(dirname $(readlink -f $0)) 10 | source $DOCKER_MISSING_TOOLS/docker__login.sh 11 | 12 | # TARGET not needed... 13 | # IMAGE not needed... 14 | # VERSION not needed... 15 | # REPO not needed... 16 | STACK="$1" 17 | DOCKERSTACKFILE=${2:-"docker-stack-prod.yml"} 18 | 19 | # cd $TARGET 20 | # dont build any IMAGE 21 | # dont tag any VERSION 22 | # dont push to any REPO 23 | # cd .. 24 | 25 | docker stack deploy -c $DOCKERSTACKFILE $STACK --with-registry-auth 26 | -------------------------------------------------------------------------------- /docker_init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | [ "$#" -eq 0 ] || die "[docker-tools] 0 arguments required, $# provided" 6 | 7 | docker swarm init 8 | -------------------------------------------------------------------------------- /docker_logs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | [ "$#" -eq 1 ] || die "[docker-tools] 1 argument required ('STACK name'), $# provided" 6 | 7 | STACK="$1" 8 | 9 | docker_logs_up $STACK 10 | docker_logs_down $STACK 11 | -------------------------------------------------------------------------------- /docker_logs_down.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | [ "$#" -eq 1 ] || die "[docker-tools] 1 argument required ('STACK name'), $# provided" 6 | 7 | STACK="$1" 8 | 9 | for status in "created" "restarting" "removing" "paused" "exited" "dead" 10 | do 11 | for sid in $(docker container ls --filter "status=$status" -q); do 12 | 13 | stack=$(docker inspect --format "{{index .Config.Labels \"com.docker.stack.namespace\" }}" $sid) 14 | if [[ "$stack" == "$STACK" ]];then 15 | echo " " 16 | echo "[docker-tools] --------------------------------------------------------------------------------------------" 17 | echo "[docker-tools] ID " $(docker inspect --format "{{.ID}}" $sid) 18 | echo "[docker-tools] Name " $(docker inspect --format "{{.Name}}" $sid) 19 | echo "[docker-tools] Status " $(docker inspect --format "{{.State.Status}}" $sid) 20 | echo "[docker-tools] FinishedAt" $(docker inspect --format "{{.State.FinishedAt}}" $sid) | sed -r 's/T/\t/g' 21 | echo " " 22 | docker logs $sid 23 | echo " " 24 | echo " " 25 | echo " " 26 | echo " " 27 | fi 28 | done 29 | done 30 | 31 | -------------------------------------------------------------------------------- /docker_logs_f.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | [ "$#" -eq 0 ] || die "[docker-tools] 0 arguments required, $# provided" 6 | 7 | echo " " 8 | journalctl -fu docker.service 9 | -------------------------------------------------------------------------------- /docker_logs_up.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | [ "$#" -eq 1 ] || die "[docker-tools] 1 argument required ('STACK name'), $# provided" 6 | 7 | STACK="$1" 8 | 9 | for status in "running" 10 | do 11 | for sid in $(docker container ls --filter "status=$status" -q); do 12 | 13 | stack=$(docker inspect --format "{{index .Config.Labels \"com.docker.stack.namespace\" }}" $sid) 14 | if [[ "$stack" == "$STACK" ]];then 15 | echo " " 16 | echo "[docker-tools] --------------------------------------------------------------------------------------------------" 17 | echo "[docker-tools] ID " $(docker inspect --format "{{.ID}}" $sid) 18 | echo "[docker-tools] Name " $(docker inspect --format "{{.Name}}" $sid) 19 | echo "[docker-tools] Status " $(docker inspect --format "{{.State.Status}}" $sid) 20 | echo "[docker-tools] FinishedAt" $(docker inspect --format "{{.State.FinishedAt}}" $sid) | sed -r 's/T/\t/g' 21 | echo " " 22 | docker logs $sid 23 | echo " " 24 | echo " " 25 | echo " " 26 | echo " " 27 | fi 28 | done 29 | done 30 | -------------------------------------------------------------------------------- /docker_ls.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | [ "$#" -eq 0 ] || die "[docker-tools] 0 arguments required, $# provided" 6 | 7 | echo " " 8 | docker stack ls 9 | 10 | echo " " 11 | docker service ls --format="table {{.ID}}\t{{.Image}}\t{{.Name}}\t{{.Ports}}" | grep "ID" | sed -r 's/ID /SERVICE ID/g' 12 | docker service ls --format="table {{.ID}}\t{{.Image}}\\t{{.Name}}\t{{.Ports}}" | grep -v "ID" | sort -t \t -k 3 13 | 14 | echo " " 15 | docker container ls -a --format="table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}" | grep "CONTAINER ID" 16 | docker container ls -a --filter="status=created" --format="table {{.ID}}\t{{.Image}}\\t{{.Names}}\t{{.Status}}" | grep -v "CONTAINER ID" | sort -t \t -k 3 17 | docker container ls -a --filter="status=restarting" --format="table {{.ID}}\t{{.Image}}\\t{{.Names}}\t{{.Status}}" | grep -v "CONTAINER ID" | sort -t \t -k 3 18 | docker container ls -a --filter="status=running" --format="table {{.ID}}\t{{.Image}}\\t{{.Names}}\t{{.Status}}" | grep -v "CONTAINER ID" | sort -t \t -k 3 19 | docker container ls -a --filter="status=removing" --format="table {{.ID}}\t{{.Image}}\\t{{.Names}}\t{{.Status}}" | grep -v "CONTAINER ID" | sort -t \t -k 3 20 | docker container ls -a --filter="status=paused" --format="table {{.ID}}\t{{.Image}}\\t{{.Names}}\t{{.Status}}" | grep -v "CONTAINER ID" | sort -t \t -k 3 21 | docker container ls -a --filter="status=exited" --format="table {{.ID}}\t{{.Image}}\\t{{.Names}}\t{{.Status}}" | grep -v "CONTAINER ID" | sort -t \t -k 3 22 | docker container ls -a --filter="status=dead" --format="table {{.ID}}\t{{.Image}}\\t{{.Names}}\t{{.Status}}" | grep -v "CONTAINER ID" | sort -t \t -k 3 23 | 24 | #"created" "restarting" "running" "removing" "paused" "exited" "dead" 25 | 26 | echo " " 27 | docker image ls -a --format="table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.CreatedSince}}" | grep "IMAGE ID" 28 | docker image ls -a --format="table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.CreatedSince}}" | grep -v "IMAGE ID" | sort -t \t -k 2 29 | 30 | echo " " 31 | docker volume ls 32 | 33 | # echo " " 34 | # docker network ls 35 | 36 | echo " " 37 | -------------------------------------------------------------------------------- /docker_missing_tools_install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # git clone https://github.com/nandoquintana/docker-missing-tools.git 4 | 5 | LOCAL_BIN="/usr/local/bin" 6 | DOCKER_MISSING_TOOLS=$(dirname $(readlink -f $0)) 7 | HOME=~ 8 | 9 | source $(dirname $(readlink -f $0))"/docker_missing_tools_uninstall.sh" 10 | 11 | if [ ! -f $LOCAL_BIN"/docker_ls" ]; then 12 | cp $DOCKER_MISSING_TOOLS"/docker_ls.sh" $LOCAL_BIN"/docker_ls" 13 | fi 14 | if [ ! -f $LOCAL_BIN"/docker_logs" ]; then 15 | cp $DOCKER_MISSING_TOOLS"/docker_logs.sh" $LOCAL_BIN"/docker_logs" 16 | fi 17 | if [ ! -f $LOCAL_BIN"/docker_logs_up" ]; then 18 | cp $DOCKER_MISSING_TOOLS"/docker_logs_up.sh" $LOCAL_BIN"/docker_logs_up" 19 | fi 20 | if [ ! -f $LOCAL_BIN"/docker_logs_down" ]; then 21 | cp $DOCKER_MISSING_TOOLS"/docker_logs_down.sh" $LOCAL_BIN"/docker_logs_down" 22 | fi 23 | if [ ! -f $LOCAL_BIN"/docker_logs_f" ]; then 24 | cp $DOCKER_MISSING_TOOLS"/docker_logs_f.sh" $LOCAL_BIN"/docker_logs_f" 25 | fi 26 | if [ ! -f $LOCAL_BIN"/docker_ps" ]; then 27 | cp $DOCKER_MISSING_TOOLS"/docker_ps.sh" $LOCAL_BIN"/docker_ps" 28 | fi 29 | if [ ! -f $LOCAL_BIN"/docker_init" ]; then 30 | cp $DOCKER_MISSING_TOOLS"/docker_init.sh" $LOCAL_BIN"/docker_init" 31 | fi 32 | if [ ! -f $LOCAL_BIN"/docker_build" ]; then 33 | cp $DOCKER_MISSING_TOOLS"/docker_build.sh" $LOCAL_BIN"/docker_build" 34 | fi 35 | if [ ! -f $LOCAL_BIN"/docker_build_and_deploy" ]; then 36 | cp $DOCKER_MISSING_TOOLS"/docker_build_and_deploy.sh" $LOCAL_BIN"/docker_build_and_deploy" 37 | fi 38 | if [ ! -f $LOCAL_BIN"/docker_build_and_release" ]; then 39 | cp $DOCKER_MISSING_TOOLS"/docker_build_and_release.sh" $LOCAL_BIN"/docker_build_and_release" 40 | fi 41 | if [ ! -f $LOCAL_BIN"/docker_deploy" ]; then 42 | cp $DOCKER_MISSING_TOOLS"/docker_deploy.sh" $LOCAL_BIN"/docker_deploy" 43 | fi 44 | if [ ! -f $LOCAL_BIN"/docker_reset" ]; then 45 | cp $DOCKER_MISSING_TOOLS"/docker_reset.sh" $LOCAL_BIN"/docker_reset" 46 | fi 47 | if [ ! -f $LOCAL_BIN"/docker__clean.sh" ]; then 48 | cp $DOCKER_MISSING_TOOLS"/docker__clean.sh" $LOCAL_BIN"/docker__clean.sh" 49 | fi 50 | if [ ! -f $LOCAL_BIN"/docker__login.sh" ]; then 51 | cp $DOCKER_MISSING_TOOLS"/docker__login.sh" $LOCAL_BIN"/" 52 | fi 53 | if [ ! -f $LOCAL_BIN"/docker__credentials.py" ]; then 54 | cp $DOCKER_MISSING_TOOLS"/docker__credentials.py" $LOCAL_BIN"/" 55 | fi 56 | if [ ! -f $HOME"/.docker_missing_tools_repositories" ]; then 57 | cp $DOCKER_MISSING_TOOLS"/.docker_missing_tools_repositories" $HOME"/" 58 | fi 59 | -------------------------------------------------------------------------------- /docker_missing_tools_uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | 5 | LOCAL_BIN="/usr/local/bin" 6 | DOCKER_MISSING_TOOLS=$(dirname $(readlink -f $0)) 7 | HOME=~ 8 | 9 | 10 | 11 | if [ -f $LOCAL_BIN"/docker_ls" ]; then 12 | rm $LOCAL_BIN"/docker_ls" 13 | fi 14 | if [ -f $LOCAL_BIN"/docker_logs" ]; then 15 | rm $LOCAL_BIN"/docker_logs" 16 | fi 17 | if [ -f $LOCAL_BIN"/docker_logs_up" ]; then 18 | rm $LOCAL_BIN"/docker_logs_up" 19 | fi 20 | if [ -f $LOCAL_BIN"/docker_logs_down" ]; then 21 | rm $LOCAL_BIN"/docker_logs_down" 22 | fi 23 | if [ -f $LOCAL_BIN"/docker_logs_f" ]; then 24 | rm $LOCAL_BIN"/docker_logs_f" 25 | fi 26 | if [ -f $LOCAL_BIN"/docker_ps" ]; then 27 | rm $LOCAL_BIN"/docker_ps" 28 | fi 29 | if [ -f $LOCAL_BIN"/docker_init" ]; then 30 | rm $LOCAL_BIN"/docker_init" 31 | fi 32 | if [ -f $LOCAL_BIN"/docker_build" ]; then 33 | rm $LOCAL_BIN"/docker_build" 34 | fi 35 | if [ -f $LOCAL_BIN"/docker_build_and_deploy" ]; then 36 | rm $LOCAL_BIN"/docker_build_and_deploy" 37 | fi 38 | if [ -f $LOCAL_BIN"/docker_build_and_release" ]; then 39 | rm $LOCAL_BIN"/docker_build_and_release" 40 | fi 41 | if [ -f $LOCAL_BIN"/docker_deploy" ]; then 42 | rm $LOCAL_BIN"/docker_deploy" 43 | fi 44 | if [ -f $LOCAL_BIN"/docker_reset" ]; then 45 | rm $LOCAL_BIN"/docker_reset" 46 | fi 47 | if [ -f $LOCAL_BIN"/docker__clean.sh" ]; then 48 | rm $LOCAL_BIN"/docker__clean.sh" 49 | fi 50 | if [ -f $LOCAL_BIN"/docker__login.sh" ]; then 51 | rm $LOCAL_BIN"/docker__login.sh" 52 | fi 53 | if [ -f $LOCAL_BIN"/docker__credentials.py" ]; then 54 | rm $LOCAL_BIN"/docker__credentials.py" 55 | fi 56 | # if [ -f $HOME"/.docker_missing_tools_repositories" ]; then 57 | # rm $HOME"/.docker_missing_tools_repositories" 58 | # fi 59 | -------------------------------------------------------------------------------- /docker_ps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | [ "$#" -eq 0 ] || die "[docker-tools] 0 arguments required, $# provided" 6 | 7 | echo " " 8 | netstat -putan | grep dockerd 9 | 10 | echo " " 11 | 12 | for stack in $(docker stack ls --format "{{.Name}}"); do 13 | 14 | if [[ "$stack" != "NAME" ]];then 15 | docker stack ps $stack 16 | echo " " 17 | docker stack ps $stack --no-trunc --format "{{.ID}} {{.Error}}" 18 | fi 19 | 20 | done 21 | 22 | echo " " 23 | -------------------------------------------------------------------------------- /docker_reset.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | die() { echo "$@" 1>&2 ; exit 1; } 4 | 5 | [ "$#" -eq 0 ] || die "[docker-tools] 0 arguments required, $# provided" 6 | 7 | echo " " 8 | echo "[docker-tools]----------------------------------" 9 | echo "[docker-tools]----------------------------------" 10 | echo "[docker-tools]----------------------------------" 11 | echo "[docker-tools]----------------------------------" 12 | echo " " 13 | echo "[docker-tools] removing STACKs..." 14 | echo " " 15 | 16 | for stack in $(docker stack ls | awk '{print $1}'); 17 | do 18 | if [ ! ${stack} == 'NAME' ] 19 | then 20 | docker stack rm ${stack}; 21 | fi 22 | done 23 | 24 | echo " " 25 | echo "[docker-tools]----------------------------------" 26 | echo "[docker-tools]----------------------------------" 27 | echo "[docker-tools]----------------------------------" 28 | echo "[docker-tools]----------------------------------" 29 | echo " " 30 | echo "[docker-tools] removing CONTAINERs..." 31 | echo " " 32 | 33 | for container in $(docker container ls -aq | awk '{print $1}'); 34 | do 35 | if [ ! ${container} == 'CONTAINER' ] 36 | then 37 | docker container stop ${container}; 38 | docker container rm -f ${container}; 39 | fi 40 | done 41 | 42 | echo " " 43 | echo "[docker-tools]----------------------------------" 44 | echo "[docker-tools]----------------------------------" 45 | echo "[docker-tools]----------------------------------" 46 | echo "[docker-tools]----------------------------------" 47 | echo " " 48 | echo "[docker-tools] removing IMAGEs..." 49 | echo " " 50 | 51 | for image in $(docker image ls -aq | awk '{print $1}'); 52 | do 53 | arr=$(docker image ls -aq | awk '{print $1}') 54 | if [[ " ${arr[*]} " == *"${image}"* ]]; 55 | then 56 | docker image rm -f ${image}; 57 | fi 58 | done 59 | 60 | echo " " 61 | echo "[docker-tools]----------------------------------" 62 | echo "[docker-tools]----------------------------------" 63 | echo "[docker-tools]----------------------------------" 64 | echo "[docker-tools]----------------------------------" 65 | echo " " 66 | echo "[docker-tools] pruning containers, images and networks (not volumes)..." 67 | echo " " 68 | 69 | docker system prune -f 70 | 71 | echo " " 72 | echo "[docker-tools]----------------------------------" 73 | echo "[docker-tools]----------------------------------" 74 | echo "[docker-tools]----------------------------------" 75 | echo "[docker-tools]----------------------------------" 76 | echo " " 77 | --------------------------------------------------------------------------------