微服务平台docker仓库使用

连接docker私服

在docker配置文件中添加docker私服

linux(centos,ubuntu):

sudo vi /etc/docker/daemon.json

"insecure-registries":["xxx.xxx.xxx.xxx:5000"]

如果此前配置有其他内用,注意用逗号隔开(要符合json格式)。如果不添加或添加错误会出现https报错。

Mac OS
直接在Docker Desktop->Preference->Daemon中添加私服即可。

添加完成后,重启daemon以及docker使改动生效:

systemctl daemon-reload
systemctl restart docker

Mac OS直接在应用中点击 Apply & Restart 即可

登录

如要使用push和pull操作docker私服,需使用管理员账号登录:

docker login xxx.xxx.xxx.xxx:5000
#输入账号密码

镜像获取与上传

批量上传工具

由于多版本的镜像下载、改名、上传、删除费时费力,所以写了一个python工具处理这些问题:

import os

imageName = 'couchbase'
oldR = ""
newR = ""
tags = ['6.0.2', '5.5.1', '4.6.5']
register = 'xxx.xxx.xxx.xxx:5000'

images = []
for i in tags:
    if oldR != "":
        oldName = oldR + "/" + imageName + ":" + i
    else:
        oldName = imageName + ":" + i
    if newR != "":
        newName = register + '/' + newR + "/" + imageName + ":" + i
    else:
        newName = register + '/' + imageName + ":" + i
    images.append([oldName, newName])


for i in images:
    cmd = "docker pull " + i[0]
    print("runing: " + cmd)
    result = os.popen(cmd).readlines()
    for r in result:
        print(r)

for i in images:
    cmd = "docker tag " + i[0] + " " + i[1]
    print("runing: " + cmd)
    result = os.popen(cmd).readlines()
    for r in result:
        print(r)

for i in images:
    cmd = "docker push " + i[1]
    print("runing: " + cmd)
    result = os.popen(cmd).readlines()
    for r in result:
        print(r)

for i in images:
    cmd = "docker rmi " + i[1]
    print("runing: " + cmd)
    result = os.popen(cmd).readlines()
    for r in result:
        print(r)

for i in images:
    cmd = "docker rmi " + i[0]
    print("runing: " + cmd)
    result = os.popen(cmd).readlines()
    for r in result:
        print(r)

使用方法

  • imageName:镜像名
  • registry:docker私服地址和ip
  • tags:需要下载的标签组成的list
  • oldR:原有的私人仓库
  • newR:新的仓库名

拉取没有仓库名的镜像时可以代码中编写的形式进行,当需要仓库名时需要按照以下格式:

imageName = 'db-mysql'
oldR = "yuanziqiang1995"
newR = "ziqiangy"
tags = ['1.0']
register = 'xxx.xxx.xxx.xxx:5000'

拉取的镜像为:yuanziqiang1995/db-mysql:1.0
上传的镜像为:xxx.xxx.xxx.xxx:5000/ziqiangy/db-mysql:1.0

存在的问题与注意事项

  • 需要注意网络环境:有一些企业级镜像没有国内加速,如果网络环境不好可能导致下载过慢。
  • 上述代码使用与python3环境,在python2环境下需要对代码进行修改。
  • 代码使用全部下载,再全部上传的方式。由于不同版本的同一个镜像往往公用许多layers,这样有助于加快速度。但是当使用虚拟机等环境时,如要下载大量镜像请注意存储可用空间,以免下载失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值