
# 镜像推送
#### 如何通过API推送镜像到SWR？
SWR暂时没有开放镜像上传的API，您可以参考[推送镜像到镜像仓库](https://support.huaweicloud.com/usermanual-swr/swr_01_0011.html#section3)章节的两种方式：容器引擎客户端的方式或页面上传方式来完成镜像推送。
#### 为什么通过客户端上传和页面上传的镜像大小不一样？
**问题描述**
假设在本地Docker客户端上制作了一个nginx镜像，版本号为v2.0.0，使用**docker images** 命令查询SIZE为**22.8MB**：
```
$ docker images
REPOSITORY                         TAG             IMAGE ID       CREATED         SIZE
nginx                              v2.0.0          22f2bf2e2b4f   9 days ago      22.8MB
```
1. 通过docker容器引擎客户端（即执行docker push命令）上传该镜像至SWR镜像仓库，查询大小为**9.5MB**。
2. 在本地Docker客户端将镜像打包为tar格式，将nginx.tar下载至本地后，通过页面方式上传至SWR镜像仓库，查询大小为**23.2MB**。
可以发现，通过客户端和页面上传的镜像大小不一样。
**原因分析**
使用客户端上传的镜像每一层layer都进行了tgz压缩，而页面上传的镜像包是经过docker打包的，每一层layer只进行了打包，没有压缩。所以两种方式上传的镜像大小显示会不一致。
#### SWR镜像仓库支持ARM镜像上传么？
SWR镜像仓库对镜像的内核架构是没有任何限制的，您上传ARM架构的镜像和上传x86的镜像是没有区别的，直接上传即可。
#### docker push使用什么协议将镜像推送到SWR？
HTTPS协议。
#### 同名同tag的镜像上传后会覆盖之前的镜像吗？
会覆盖，保留最新上传的镜像。
#### SWR单个layer的最大限制是多少？
使用客户端向SWR上传镜像，镜像的每个layer大小不能超过50G。
#### SWR公网上传单租户流控限制是多少？
为了确保SWR镜像上传租户间不会互相影响，当前对单个租户流控为镜像层上传20QPS，超过后会被限流，docker会收到503并会自动重试限流拦截的请求。
#### SWR支持断点续传镜像文件吗？
暂不支持。
#### 通过公网上传镜像到SWR时，公网链路不稳定导致上传镜像慢或卡住，如何优化？
可通过调整OS参数，优化上传速度。
**适用场景**：Linux内核版本4.9及以上（如Euler OS 2.9、HCE 2.0、Ubuntu 18、Rocky Linux 8+等）。
**操作步骤**：
1. 登录到上传镜像的目标主机，切换至root用户。
2. 执行以下命令优化网络传输性能：
```
# 设置网络核心的默认队列调度算法（Queueing Discipline, qdisc）为 fq（Fair Queueing，公平队列）
sysctl -w net.core.default_qdisc=fq    
# 配置 Linux 内核 TCP 拥塞控制算法的参数
sysctl -w net.ipv4.tcp_congestion_control=bbr    
# 配置 Linux 内核 TCP 发送缓冲区大小的参数
sysctl -w net.ipv4.tcp_wmem="4096 163840 41943040"
```
#### 怎么处理页面上传多个镜像时报错"ERR_BLOB_OUT_OF_MEMORY"？
**问题现象**：
用户通过SWR控制台页面上传镜像时，单击"开始上传"按钮批量上传多个镜像包，浏览器报错"(failed)net::ERR_BLOB_OUT_OF_MEMORY"，导致上传失败。
![](https://support.huaweicloud.com/swr_faq/zh-cn_image_0000002587371450.png "点击放大")
**解决方案**：
- 清理浏览器缓存：
  1. 关闭当前浏览器页签。
  
  2. 清除浏览器缓存（Cookie、站点数据等）。
  
  3. 重新打开浏览器并登录SWR控制台。
  
  4. 重新进行上传操作。
   
- 大镜像推荐使用**客户端上传** 。具体操作请参见：[容器引擎客户端推送镜像](https://support.huaweicloud.com/usermanual-swr/swr_01_0011.html#section4)。
 
