kolla安装openstack时的镜像处理脚本(下载、上传到Registry)

1.下载脚本

vim images_pull.sh

 1 docker pull quay.nju.edu.cn/openstack.kolla/neutron-server:2024.1-ubuntu-jammy
 2 docker pull quay.nju.edu.cn/openstack.kolla/nova-compute:2024.1-ubuntu-jammy
 3 docker pull quay.nju.edu.cn/openstack.kolla/neutron-dhcp-agent:2024.1-ubuntu-jammy
 4 docker pull quay.nju.edu.cn/openstack.kolla/neutron-metadata-agent:2024.1-ubuntu-jammy
 5 docker pull quay.nju.edu.cn/openstack.kolla/neutron-openvswitch-agent:2024.1-ubuntu-jammy
 6 docker pull quay.nju.edu.cn/openstack.kolla/neutron-l3-agent:2024.1-ubuntu-jammy
 7 docker pull quay.nju.edu.cn/openstack.kolla/heat-api:2024.1-ubuntu-jammy
 8 docker pull quay.nju.edu.cn/openstack.kolla/heat-engine:2024.1-ubuntu-jammy
 9 docker pull quay.nju.edu.cn/openstack.kolla/heat-api-cfn:2024.1-ubuntu-jammy
10 docker pull quay.nju.edu.cn/openstack.kolla/nova-novncproxy:2024.1-ubuntu-jammy
11 docker pull quay.nju.edu.cn/openstack.kolla/nova-conductor:2024.1-ubuntu-jammy
12 docker pull quay.nju.edu.cn/openstack.kolla/nova-ssh:2024.1-ubuntu-jammy
13 docker pull quay.nju.edu.cn/openstack.kolla/nova-api:2024.1-ubuntu-jammy
14 docker pull quay.nju.edu.cn/openstack.kolla/keystone-fernet:2024.1-ubuntu-jammy
15 docker pull quay.nju.edu.cn/openstack.kolla/nova-scheduler:2024.1-ubuntu-jammy
16 docker pull quay.nju.edu.cn/openstack.kolla/keystone:2024.1-ubuntu-jammy
17 docker pull quay.nju.edu.cn/openstack.kolla/keystone-ssh:2024.1-ubuntu-jammy
18 docker pull quay.nju.edu.cn/openstack.kolla/horizon:2024.1-ubuntu-jammy
19 docker pull quay.nju.edu.cn/openstack.kolla/placement-api:2024.1-ubuntu-jammy
20 docker pull quay.nju.edu.cn/openstack.kolla/kolla-toolbox:2024.1-ubuntu-jammy
21 docker pull quay.nju.edu.cn/openstack.kolla/openvswitch-db-server:2024.1-ubuntu-jammy
22 docker pull quay.nju.edu.cn/openstack.kolla/openvswitch-vswitchd:2024.1-ubuntu-jammy
23 docker pull quay.nju.edu.cn/openstack.kolla/mariadb-server:2024.1-ubuntu-jammy
24 docker pull quay.nju.edu.cn/openstack.kolla/mariadb-clustercheck:2024.1-ubuntu-jammy
25 docker pull quay.nju.edu.cn/openstack.kolla/nova-libvirt:2024.1-ubuntu-jammy
26 docker pull quay.nju.edu.cn/openstack.kolla/cron:2024.1-ubuntu-jammy
27 docker pull quay.nju.edu.cn/openstack.kolla/keepalived:2024.1-ubuntu-jammy
28 docker pull quay.nju.edu.cn/openstack.kolla/memcached:2024.1-ubuntu-jammy
29 docker pull quay.nju.edu.cn/openstack.kolla/haproxy:2024.1-ubuntu-jammy
30 docker pull quay.nju.edu.cn/openstack.kolla/fluentd:2024.1-ubuntu-jammy
31 docker pull quay.nju.edu.cn/openstack.kolla/glance-api:2024.1-ubuntu-jammy
32 docker pull quay.nju.edu.cn/openstack.kolla/rabbitmq:2024.1-ubuntu-jammy

 

 

下载完成后上传到docker registry:

修改:REGISTRY="172.16.1.10:4000"
文件:images.txt 命令:docker images |grep quay |awk '{print $1":"$2}' >>images.txt
#!/bin/bash

# Docker Registry的地址
REGISTRY="172.16.1.10:4000"

# Docker Registry的用户名和密码
USERNAME="kk"
PASSWORD="123456"

# 镜像列表文件路径
IMAGE_LIST_FILE="images.txt"

# 检查镜像列表文件是否存在
if [ ! -f "$IMAGE_LIST_FILE" ]; then
  echo "Image list file not found: $IMAGE_LIST_FILE"
  exit 1
fi

# 登录到Docker Registry
echo "Logging into Docker Registry..."
echo "$PASSWORD" | docker login "$REGISTRY" --username "$USERNAME" --password-stdin

if [ $? -ne 0 ]; then
  echo "Failed to login to Docker Registry"
  exit 1
fi

echo "Login successful"

# 从文件中读取镜像列表并上传
while IFS= read -r IMAGE_WITH_TAG; do
  # 检查镜像是否存在
  if ! docker image inspect "$IMAGE_WITH_TAG" > /dev/null 2>&1; then
    echo "Image not found: $IMAGE_WITH_TAG"
    continue
  fi

  # 使用 sed 替换旧的 Registry 地址
  NEW_IMAGE=$(echo "$IMAGE_WITH_TAG" | sed 's|quay.nju.edu.cn|'"$REGISTRY"'|')

  # 打标签
  echo "Tagging $IMAGE_WITH_TAG as $NEW_IMAGE..."
  docker tag "$IMAGE_WITH_TAG" "$NEW_IMAGE"

  # 上传镜像
  echo "Pushing $NEW_IMAGE to $REGISTRY..."
  for try in {1..3}; do
    if docker push "$NEW_IMAGE"; then
      echo "Successfully pushed $NEW_IMAGE"
      break
    else
      echo "Attempt $try failed, retrying..."
      if [ "$try" -eq 3 ]; then
        echo "Failed to push $NEW_IMAGE after 3 attempts"
        exit 1
      fi
    fi
  done

  # 删除临时标签
  docker rmi "$NEW_IMAGE"
done < "$IMAGE_LIST_FILE"

echo "All images have been pushed successfully"

 

查看:curl -X GET localhost:4000/v2/_catalog | jq

查看详情:curl -X GET localhost:4000/v2/openstack.kolla/memcached/tags/list

posted @ 2024-09-23 17:09  swift-blogs  阅读(158)  评论(0)    收藏  举报