docker如何配置镜像加速器
作者:子裳
文章介绍了在Coding中遇到自动构建容器失败的问题,最终通过配置阿里云的镜像加速器和使用Docker Buildx解决了问题
前情
在Coding中突然发现自动构建容器失败,看日志报请求异常。开始以为是Coding的问题,但是发现在本地也无法拉取python的基础包。网上查了下,发现是被墙了。
只好在网上搜寻镜像加速器,试验半天,终于发现阿里的可以用。但是直接docker pull可以正常用,但是`docker bulidx` 还是无法拉取。所以又找了半天。
目前试验一下方法可以,记录下。
配置
前置
使用阿里云提供的个人版免费容器镜像加速器
但是需要注册阿里云的账号
阿里云-镜像加速器,复制对应的加速器地址
build
正常的pull和build可以使用以下方法
阿里云提供的页面里面有不同系统的配置方式,我这边就写一种
mkdir -p /etc/docker echo '{ "registry-mirrors": ["https://o93s4e76.mirror.aliyuncs.com"] }' > /etc/docker/daemon.json systemctl daemon-reload systemctl restart docker
buildx
buildx 一般是用于多平台镜像构建
基本步骤如下
1. 建立模拟器
docker run --rm --privileged tonistiigi/binfmt:latest --install all
2. 新建并使用一个模拟环境
docker buildx create --use --name=mybuilder-cn-1 --driver docker-container --config /root/workspace/conf/buildkitd.toml
默认拉取 moby/buildkit 镜像,并命名为mybuilder-cn-1使用
配置文件地址为/root/workspace/conf/buildkitd.toml
镜像加速器的地址在buildkitd.toml中配置
debug = true [registry."docker.io"] mirrors = ["mirror.baidubce.com","registry-1.docker.io"] http = false
3. 构建镜像
docker buildx build --pull --no-cache --platform linux/amd64,linux/amd64 -t personal.net/per/docker/milk:v1.0 -f /root/workspace/conf/Dockerfile --push .
- --pull 强制使用加速器
- -t personal.net/per/docker/milk:v1.0 要生成或者推送的镜像仓库地址
- -f /root/workspace/conf/Dockerfile dockerfile文件全路径
- --push 推送到镜像仓库 也可以直接保存为tar文件
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。