non swarm


### check docker node label
docker node ls -q | xargs docker node inspect -f '{{ .ID }} [{{ .Description.Hostname }}]: {{ .Spec.Labels }}'
docker node ls -q | xargs docker node inspect \
  -f '{{ .ID }} [{{ .Description.Hostname }}]: {{ range $k, $v := .Spec.Labels }}{{ $k }}={{ $v }} {{end}}'

#get node label
docker node ls -q | xargs docker node inspect \
  -f '{{ .ID }} [{{ .Description.Hostname }}]: {{ range $k, $v := .Spec.Labels }}{{ $k }}={{ $v }} {{end}}'

#clean all unused docker
docker system prune --all -f

### remove 1 service on docker-compose.yml
docker-compose rm -s -v -f your_service_name

### docker volume regex
docker volume rm $(docker volume ls --filter name=runner -q)

### remove all exited container
docker rm $(docker ps -q -f status=exited)


#remove dangling images
docker rmi $(docker images -f "dangling=true" -q)

#stop all container
docker stop $(docker ps -a -q)

#remove all container
docker rm $(docker ps -a -q)

# Remove none tag images (image with tag <none>)
docker images | grep "<none>" | awk '{print $3}' |xargs docker rmi -f

# Remove all images that is not using by any running container
# note: docker ps --format {{.Image} -> List all images of running container then set it as grep pattern
docker images --format {{.Repository}}:{{.Tag}} | grep -vFf <(docker ps --format {{.Image}}) | xargs docker rmi -f


#build without cache
echo "Admin says: docker-compose stop" && \
    docker-compose stop && \
        echo "Admin says: docker-compose rm ..." && \
    docker-compose rm -f --all && \
        echo "Admin says: docker-compose pull" && \
    docker-compose pull && \
        echo "Admin says: docker-compose build ..." && \
    docker-compose build --no-cache && \
        echo "Admin says: docker-compose up ..." && \
    docker-compose up -d --force-recreate --remove-orphans

curl -u username:password -i -k https://registry.ipang.my.id/v2/_catalog/image-name
curl -u username:password -i -k https://registry.ipang.my.id/v2/image-name/manifests/master -H 'Accept: application/vnd.docker.distribution.manifest.v2+json'
curl -u username:password -i -k https://registry.ipang.my.id/v2/_catalog

#remove log
sudo sh -c 'truncate -s 0 /var/lib/docker/containers/*/*-json.log'

docker swarm command collection


### docker restart all container if down
docker update --restart unless-stopped $(docker ps -q)

#limit history limit 
docker swarm update --task-history-limit 5 

#remove all docker swarm
docker service rm $(docker service ls -q)

#inspect service pretty
docker service inspect --pretty your-service

# search log 
docker service logs nama-service 2>&1 | grep "error" -A 20