拉取镜像很慢怎么解决
下载官方镜像点的镜像国内访问速度太慢,使用加速器可以解决;DNS可以自己定义
首先打开配置文件daemon.json
,centos上默认有此文件,但是ubuntu上需要自己创建
vim /etc/docker/daemon.json
1 2 3 4
| { "registry-mirrors":["https://cabcj35w.mirror.aliyuncs.com"], "dns": ["114.114.114.114", "8.8.8.8"] }
|
1 2
| sudo systemctl daemon-reload sudo systemctl restart docker
|
设置容器资源限制
1 2
| docker run -ti -d --cpu-shares 512 -m 300M busybox docker update --cpu-shares 512 -m 300M container_id
|
查看容器资源占用
不能使用私有仓库怎么解决
docker默认只能连接有可信任证书的远程仓库,所以默认情况下是连不上自建私有仓库的,需要以下修改
Linux
1
| find / -name docker.service
|
vim /lib/systemd/system/docker.service
在此处添加以下参数

1
| --insecure-registry harbor.socmap.net
|
1 2
| systemctl daemon-reload systemctl restart docker
|
Windows
在docker的设置中可以找到配置可信任仓库的地址
的选项
配置完后,docker会自动重启,重启完之后就可以通过docker login harbor.socmap.net
来登录,登录之后就可以正常推送了
MacOS
与Windows同理,可以在设置中找到
删除指定关键词的镜像
核对需要删除的镜像
1
| docker images | grep keyword
|
删除上述的镜像
1
| docker rmi $(docker images | grep keyword | awk -F " " '{print $3}' | xargs)
|
批量转存镜像
如果需要拉取k8s.gcr.io
的镜像,并且存到自己镜像仓库中,手动pull-retag-push
会非常麻烦,可以用以下脚本。只需设置一下源镜像名和新仓库地址就可以啦~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| # -*- coding: utf-8 -*- import requests import os import sys import re
# 设置源仓库的镜像(以下镜像必须公开) images = ["k8s.gcr.io/kube-apiserver:v1.16.0","k8s.gcr.io/kube-controller-manager:v1.16.0","k8s.gcr.io/kube-scheduler:v1.16.0","k8s.gcr.io/etcd:3.3.15-0"] # 设置目标仓库 repo = "harbor.example.com/kubernetes/"
def login(): url = re.split('/', repo)[0] os.system("docker login " + url)
def pullimage(): for image in images: os.system("docker pull " + image )
def tagimage(): for image in images: name = re.split('/', image)[-1] os.system("docker tag " + image + " " + repo + name)
def pushimage(): for image in images: name = re.split('/', image)[-1] os.system("docker push " + repo + name)
login() pullimage() tagimage() pushimage()
|