1.概述
- • 2024年6月7日因DockerHub遭受协同攻击,植入数百万恶意存储库,因此导致dockerhub无法使用;
- • 这篇文章针对的是containerd,docker请查看公众号历史文章
2.containerd部署
$ wget https://mirror.ghproxy.com/https://github.com/containerd/containerd/releases/download/v1.7.18/containerd-1.7.18-linux-amd64.tar.gz
$ wget https://mirror.ghproxy.com/https://github.com/opencontainers/runc/releases/download/v1.1.13/runc.amd64
$ tar -xvf containerd-1.7.18-linux-amd64.tar.gz -C /opt/
$ chmod +x runc.amd64
$ mv runc.amd64 /usr/local/bin/runc
$ cat > /lib/systemd/system/containerd.service << EOF
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target
[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
TasksMax=infinity
OOMScoreAdjust=-999
[Install]
WantedBy=multi-user.target
EOF
$ systemctl daemon-reload
$ systemctl restart containerd.service
3.下载镜像
$ ctr images pull docker.io/library/nginx
# 发现过一会就超时了,无法下载镜像
4.解决方案1
- • 镜像加速改为阿里或者华为云即可
- • 加速地址获取方式自行百度,自己登录阿里云或者华为云官网就能找到;
- • 这种办法目前有效,缺陷就是阿里云只同步了大类的仓库,也就是常用的仓库,其它没有同步,因此也就无法使用
- • containerd配置方式有2种,1.5版本是一种这种方式配置会有告警提示(想用的同学自行百度即可),本次我使用2.0的方式配置
$ vim /etc/containerd/config.toml
#147
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
#docker hub镜像加速配置
mkdir -p /etc/containerd/certs.d/docker.io
cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF
server = "https://docker.io"
[host."https://uvwbdks5.mirror.aliyuncs.com"]
capabilities = ["pull", "resolve"]
EOF
# 注意:对于nerdctl命令来说,会自动使用/etc/containerd/certs.d目录下的配置镜像加速,但是对于ctr命令,需要指定--hosts-dir=/etc/containerd/certs.d
$ ctr image pull --hosts-dir=/etc/containerd/certs.d docker.io/library/nginx:latest
# 查看有没有使用镜像加速加debug选项即可
$ ctr --debug=true image pull --hosts-dir=/etc/containerd/certs.d docker.io/library/nginx:latest
2.解决办法2
- • 配置containerd代理,这种也是最好的办法,能够下载任何镜像;
- • 将后面的路径修改为containerd的systemd配置文件即可;
sed -i '5a Environment=HTTP_PROXY="http://10.10.50.2:7890"' /lib/systemd/system/containerd.service
sed -i '5a Environment=HTTPS_PROXY="http://10.10.50.2:7890"' /lib/systemd/system/containerd.service
sed -i '5a Environment="NO_PROXY=localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local"' /lib/systemd/system/containerd.service
EOF
$ sudo systemctl daemon-reload && systemctl restart docker
3.国产镜像仓库
- • https://atomhub.openatom.cn/
- • 这个仓库是国内由开放原子开源基金会主导,华为、浪潮、DaoCloud、谐云、青云、飓风引擎以及 OpenSDV 开源联盟、openEuler 社区、OpenCloudOS 社区等成员单位共同发起建设的 AtomHub 可信镜像中心
- • 镜像仓库可以使用,但是web界面有时候打不开,这不影响仓库使用;
![](https://img-blog.csdnimg.cn/direct/f4ebea1c5994469791746d4cd44248c6.png)