Docker 容器部署脚本

发布于:2025-07-11 ⋅ 阅读:(17) ⋅ 点赞:(0)
#!/bin/bash
 
# ===============================================================================
# Author: ldj
# Date: 2025-07-08 15:37:11
# Description: 首先删除旧的容器和镜像,然后登录到 Harbor 并拉取最新的镜像进行部署
# ===============================================================================

# 显示每条命令执行情况,便于调试
set -x  

harbor_addr=$1
harbor_repo=$2
project_name=$3
version=$4
port=$5
 
image_name=${harbor_addr}/${harbor_repo}/${project_name}:${version}
 
echo "镜像名称:${image_name}"
 
# 删除旧容器
container_id=$(docker ps -aq --filter name=${project_name})
if [ -n "${container_id}" ]; then
    docker stop ${container_id}
    docker rm ${container_id}
    echo "已停止并删除容器: ${container_id}"
fi
 
# 删除本地旧镜像
old_version=$(docker images | grep ${project_name} | awk '{print $2}')
 
if [ "${old_version}" == "${version}" ]; then
    docker rmi -f ${old_images}
    echo "已删除本地旧镜像"
fi
 
# 登录Harbor
docker login -u admin -p 123456 ${harbor_addr} || { echo '登录Harbor失败'; exit 1; }
 
# 拉取新镜像
echo "开始拉取新镜像"
docker pull ${image_name} || { echo "拉取新镜像失败"; exit 1; }
 
# 运行新容器
docker run -d -p ${port}:${port} --name ${project_name} ${image_name}
 
echo ${project_name} '成功运行!'

# 删除悬空镜像
docker image prune -f

 


网站公告

今日签到

点亮在社区的每一天
去签到