#!/bin/bash schema="http://" registryUrl="192.168.10.102:8001" registryNameSpace="xiaomayi" user="deploy" pass="Harbor20240330" serverName=$2 imageName="${registryUrl}/${registryNameSpace}/${serverName}" tag=$3 desc() { clear echo "===========================================================" echo "Deploy Containter" echo "===========================================================" echo "version 0.1" echo "deploy: deploy containter" echo "delete: delete containter" echo "" echo "===========================================================" echo press any key to continue && read TEMP && echo ok.. } list_image() { image_id=`docker inspect --format="{{.Config.Image}}" ${serverName}` } list_process() { process_id=`docker inspect --format="{{.Id}}" ${serverName}` } #pull镜像 pull_image() { echo "----------------" echo "Pull Image" echo "----------------" docker login --username=${user} --password=${pass} ${registryUrl} docker pull "${imageName}:${tag}" echo "" } #运行镜像 deploy_image() { echo "----------------" echo "Deploy Image" echo "----------------" export VERSION=${tag} docker compose up -d ${serverName} echo "" } #停掉容器、删除容器、删除镜像 delete_image() { echo "----------------" echo "Delete Image" echo "----------------" list_image list_process if [ "$image_id" != "" ] ; then if [ "$process_id" != "" ] ; then #停掉容器 docker stop $process_id #删除容器 docker rm $process_id #删除镜像 docker rmi --force $image_id else #删除镜像 docker rmi --force $image_id fi fi echo "" } # main program case $1 in "deploy") pull_image delete_image deploy_image ;; "delete") delete_image ;; *) desc ;; esac