V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zzlyzq  ›  全部回复第 2 页 / 共 11 页
回复总数  211
1  2  3  4  5  6  7  8  9  10 ... 11  
2024 年 8 月 16 日
回复了 zzlyzq 创建的主题 分享发现 搭建运维用 harbor,镜像接龙,方便运维
@Niphor

这个脚本我命名为 dockerpullandpush.py ,部署在 hk 的小鸡上,通过输入参数镜像名称,实现从 dockerhub 拉取,并 push 到国内的 harbor 站点。如果 harbor 站点没有对应的 repository ,也会自动创建。以下脚本修改了 dockerhubu 和自建 harbor 的密码,改成自己的就可以用了。

#!/usr/bin/python3
import docker
import argparse
import subprocess
import json

def pull_and_push_image(image_name, docker_username, docker_password, harbor_url, harbor_username, harbor_password):
# 从 image_name 中提取 harbor_project
if '/' in image_name:
harbor_project = image_name.split('/')[0]
image_name_without_project = '/'.join(image_name.split('/')[1:])
else:
harbor_project = 'library'
image_name_without_project = image_name

# 创建 Docker 客户端
client = docker.from_env()

# 登录 Docker Hub
client.login(username=docker_username, password=docker_password)

# 拉取镜像
print(f"Pulling image {image_name} from Docker Hub...")
image = client.images.pull(image_name)

# 标记镜像
harbor_image_name = f"{harbor_url}/{harbor_project}/{image_name_without_project}"
image.tag(harbor_image_name)

# 登录 Harbor
client.login(username=harbor_username, password=harbor_password, registry=harbor_url)

# 检查项目是否存在
project_exists_cmd = f"curl -s -u {harbor_username}:{harbor_password} -X GET https://{harbor_url}/api/v2.0/projects?name={harbor_project}"
project_exists_output = subprocess.check_output(project_exists_cmd, shell=True)
project_exists_data = json.loads(project_exists_output)

if len(project_exists_data) == 0:
# 如果项目不存在,则创建项目
print(f"Project {harbor_project} does not exist in Harbor. Creating...")
create_project_cmd = f"curl -s -u {harbor_username}:{harbor_password} -X POST -H \"Content-Type: application/json\" -d '{{\"project_name\": \"{harbor_project}\", \"public\": true}}' https://{harbor_url}/api/v2.0/projects"
subprocess.check_output(create_project_cmd, shell=True)
print(f"Project {harbor_project} created successfully.")

# 推送镜像到 Harbor
print(f"Pushing image {harbor_image_name} to Harbor...")
client.images.push(harbor_image_name)

print("Image pulled and pushed successfully.")

# 清理下载的容器镜像
print(f"Cleaning up downloaded image {image_name}...")
client.images.remove(image_name)
client.images.remove(harbor_image_name)

print("Cleanup completed.")

if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Pull images from Docker Hub and push them to Harbor.")
parser.add_argument("image_names", nargs='+', help="Names of the images to pull and push")
parser.add_argument("--docker-username", default="[email protected]", help="Docker Hub username")
parser.add_argument("--docker-password", default="xxx", help="Docker Hub password")
parser.add_argument("--harbor-url", default="harbor.op123.ren:44301", help="Harbor URL")
parser.add_argument("--harbor-username", default="admin", help="Harbor username")
parser.add_argument("--harbor-password", default="xxx", help="Harbor password")

args = parser.parse_args()

for image_name in args.image_names:
print(f"\nProcessing image: {image_name}")
pull_and_push_image(image_name, args.docker_username, args.docker_password,
args.harbor_url, args.harbor_username, args.harbor_password)
2024 年 8 月 16 日
回复了 zhoudaiyu 创建的主题 Linux 请教大家一下生产环境 Linux 服务器文件系统的一些问题
硬盘可能有故障,而非文件系统问题。
2024 年 8 月 16 日
回复了 zzlyzq 创建的主题 路由器 你们的家用无线路由器用了几年故障了
@echo1937 我有一个 tplink 703n ,确实用了几年也坏了。小东西可能坏的概率大些。
2024 年 8 月 14 日
回复了 zzlyzq 创建的主题 Docker docker Java mysql,返回的时间差 8 小时
@yuanmomo 是的,目前存到数据库中的也是 utc 时间,只是程序依赖容器/系统获取的 时区配置,而 8u342 这个版本不发像 8u111 和 8u412 一样可以正常获取,所以需要再 java 运行过程中指定 选项。
2024 年 8 月 13 日
回复了 zzlyzq 创建的主题 Docker docker Java mysql,返回的时间差 8 小时
经测试,与 jdk 容器环境有关系,测试了几个主要的版本 8u111 8u412 没有问题,8u342 有问题,可以通过增加-Duser.timezone=Asia/Shanghai 解决。
2024 年 8 月 13 日
回复了 zzlyzq 创建的主题 问与答 大家用什么 gui 连接 mongodb2.6.11
@zsj1029 navicat 的新版以及老版本测试了几个,不支持 mongodb2.6.11 。
2024 年 8 月 12 日
回复了 zzlyzq 创建的主题 Docker docker Java mysql,返回的时间差 8 小时
@dengshen 有道理。但是用的华为的 CCE ,非自建 k8s 集群,没法挂时区文件了。倒是,Dockerfile 中已经做了上海的时区文件。
2024 年 8 月 12 日
回复了 zzlyzq 创建的主题 问与答 大家用什么 gui 连接 mongodb2.6.11
@stiekel 2016 年前后,在 osx 下面使用过 robomongo ,确实可以,但是只有源代码,需要手动编译。而当时是从 appstore 还是哪里直接下载的 robomongo 版本,确实可以。
2024 年 8 月 12 日
回复了 zzlyzq 创建的主题 问与答 大家用什么 gui 连接 mongodb2.6.11
@TiaoYeTaiLang 试了一下,最新版本的 datagrid 也是可以的。只是破解不大好破解。确实可以用。感谢。
2024 年 8 月 12 日
回复了 zzlyzq 创建的主题 问与答 大家用什么 gui 连接 mongodb2.6.11
@lithiumii 使用 最新版本的 compass 也是可以的。感谢。
2024 年 8 月 11 日
回复了 zzlyzq 创建的主题 问与答 百度高德地图 API 开始收费了还不低
@leeggco thx
2024 年 8 月 9 日
回复了 zzlyzq 创建的主题 问与答 百度高德地图 API 开始收费了还不低
从淘宝这些中间商买的高德地址 api 咋样?有没有坑?
2024 年 8 月 9 日
回复了 zzlyzq 创建的主题 问与答 百度高德地图 API 开始收费了还不低
@eratpfus7 研发试过了,好像不太满意。
2024 年 8 月 8 日
回复了 zzlyzq 创建的主题 问与答 百度高德地图 API 开始收费了还不低
@AoEiuV020JP 有道理。不过我们这边大多是商业软件,包括自有的 app 以及给甲方开发的软件,用个人版的话也不合适。
2024 年 8 月 8 日
回复了 zzlyzq 创建的主题 问与答 百度高德地图 API 开始收费了还不低
@leeggco 如果自建的话,公司也是有能力的,应该不差钱,有能力不如花钱买了。兄弟这个想法适合 SLA 不高的场景。能否简单介绍下你们自建地图服务选择的开源软件。
不能上外网,开发或者运维是不是很麻烦
2024 年 8 月 1 日
回复了 zzlyzq 创建的主题 问与答 域名在国外无法正常解析
1. 刚才北京来了电话,大概也解释了一下。接到这个 电话,我这个气消了八成。
2. 在众多云计算中选择腾讯云,就是喜欢腾讯云的蓝色基调以及朴实的控制台,非常棒。这次生气,主要是由于之前为了使用 CF 设置了 DNSSEC ,而现在变更用途将域名解析指向 ali 之后,无法在国外使用。昨天今天提了两个工单,工程师直接来一局解析没有问题,设置 ns 记录是 ali ,与腾讯云无关;而且我使用 8.8.8.8 也无法解析,让我去找 8.8.8.8 的公司。气的我高血压上来了。
3. 刚才电话,哥们也解释了。反正这问题也解决了,与腾讯云还有这帮兄弟们,共同进步吧,继续支持腾讯云。
2024 年 8 月 1 日
回复了 zzlyzq 创建的主题 问与答 域名在国外无法正常解析
@silverwolf 兄弟,你真棒! 之前这个域名还挂在在 CF ,所以设置了 DNSSEC 。俺对这个不了解。你这么一说,删掉后,恢复了。

感谢感谢
2024 年 1 月 26 日
回复了 wheat0r 创建的主题 云计算 咨询一个 ICP 备案的问题
用户之前有备案,但是解析换到新的地方,需要做域名新增接入。如果是 UCloud 的话,支持多个主题。如果是华为云的话,一个账号只能有一个主体,可以为用户新建一个华为云账号,然后授权他的账号使用你的云服务器用于备案。
2023 年 11 月 23 日
回复了 nidalee 创建的主题 物联网 TP-LINK4G 插卡版的摄像头有方法能公网拉取到 RTSP 吗?
挂个蒲公英盒子或者类似的,走旁路组私网。
1  2  3  4  5  6  7  8  9  10 ... 11  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   977 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 19:27 · PVG 03:27 · LAX 12:27 · JFK 15:27
♥ Do have faith in what you're doing.