【Azure 应用服务】App Service for Container 无法拉取Docker Hub中的镜像替代方案

Hub,Conta,方案,for · 浏览次数 : 135

小编点评

**问题描述:** 创建App Service Container服务时,从 Docker Hub中获取appsmith/appsmith-ce 镜像时出现 Application Error 错误。 **错误信息:** ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository) **解决方法:** 1. **将所需镜像上传到中国区的 ACR (Azure Container Registry)。** 2. **使用私有镜像库 (Private Registry),在面对 Docker Hub (docker.io) 无法从中国区访问的情况,使用镜像代理库下载镜像文件。 **配置步骤:** **1. 使用 ACR 推寄镜像** - 创建一个新的 ACR。 - 在 ACR 中添加 appsmith/appsmith-ce镜像的镜像 ID。 - 设置 ACR 的镜像地址为您的镜像仓库的 URL(例如,dockerhub.azk8s.cn)。 - 创建一个新的镜像代理库。 - 将 appsmith/appsmith-ce 镜像的镜像 ID 添加到镜像代理库中。 **2. 配置私有镜像库** - 创建一个私有镜像库。 - 将 appsmith/appsmith-ce 镜像添加到私有镜像库中。 - 在 App Service 中设置 PRIVATE_REGISTRY_SERVER_URL 来指向私有镜像库的 URL。 **3. 修改 App Service 配置** - 修改 App Service 的 configuration.json 文件中的 docker.registry.serverUrl 属性以指向私有镜像库的 URL。 - 设置 Docker Hub 的 Service URL 到您的私有镜像库的 URL。 **4. 验证镜像** - 在 App Service 中创建一个新的 App Service Container。 - 验证镜像是否成功下载并访问站点。 **注意:** - 使用私有镜像库需要在本地配置私有镜像库 URL。 - 确保您拥有所有所需权限来访问私有镜像库。

正文

问题描述

创建App Service Container服务,选择从Docker Hub中获取appsmith/appsmith-ce 镜像(https://www.appsmith.com/ & https://hub.docker.com/r/appsmith/appsmith-ce/tags ), 但访问站点时遇见Application Error错误。查看部署日志,发现问题原因是:

ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)

问题解答

在App Service For Container 中,如果选择从Docker Hub中获取镜像,App Service自动配置的Docker Hub Service URL是 https://index.docker.io。 这个地址可以在创建App Service时候的Review页面中获取,也可以从App Service的Configuration页面中的DOCKER_REGISTRY_SERVER_URL设置中查看。

因为在中国区的特殊情况下,当docker.io无法访问或者访问不稳定的情况下,就会出现Image pull failed的情况。

由于无法修改Docker Hub 在App Service中配置的Service URL,所以只有两种办法来缓解这种情况:

1) 把需要的镜像想办法上传到中国区的ACR(Azure Container Registry)中, 这样就不会面临访问拦截的问题。

2) 使用私有镜像库(Private Registry), 在面临Docker Hub(docker.io) 无法从中国区访问的情况,有很多镜像代理库同样可以下载到与Docker Hub相同的镜像文件。

所以,本文中使用的代替访问就是:

使用 Private Registry 并配置代理URL ( https://dockerhub.azk8s.cn/ )用于替换 Docker Hub( https://index.docker.io)

 

配置修改对比截图:

修改完成后,再次查看日志:

2023-06-19T07:16:29.498Z INFO - Status: Downloaded newer image for dockerhub.azk8s.cn/appsmith/appsmith-ce:release

2023-06-19T07:16:29.501Z INFO - Pull Image successful, Time taken: 3 Minutes and 52 Seconds

拉取镜像成功,验证访问站点,也成功了。

 

参考资料:

Container Registry Proxy : https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md#22-container-registry-proxy

appsmith/appsmith-ce 镜像: https://www.appsmith.com/  or  https://hub.docker.com/r/appsmith/appsmith-ce/tags

 

与【Azure 应用服务】App Service for Container 无法拉取Docker Hub中的镜像替代方案相似的内容:

【Azure 应用服务】App Service for Container 无法拉取Docker Hub中的镜像替代方案

问题描述 创建App Service Container服务,选择从Docker Hub中获取appsmith/appsmith-ce 镜像(https://www.appsmith.com/ & https://hub.docker.com/r/appsmith/appsmith-ce/tags

【Azure App Service for Container】记一次拉取镜像失败的特殊情况

问题描述 使用Azure App Service For Container 拉取 应用镜像,发现拉取失败。 错误消息: “Image pull failed since Inspect image returned null: xxxxxxx.azurecr.cn/dataapi:20230830

【Azure 应用服务】在App Service for Windows中实现反向代理

问题描述 如何在App Service for Windows(.NET Stack)中,如何实现反向代理呢? 正向代理:客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可以访问目标服务器的另外一台服务器,而这台服务器就被当做是代理人的角色 ,称之为代理服务器,于是客户端

【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数

问题描述 在Azure App Service for Windows的环境中,部署.NET应用,其中使用了 SAP NetWeaver RFC函数 (需要加载 sapnwrfc.dll)。详细的错误为: “System.DllNotFoundException: Unable to load DL

【Azure 应用服务】应用服务连接 Azure MySQL 一直失败,报错 Create connection error

问题描述 App Service上部署的Java应用,连接 Azure Database for MySQL 失败。错误信息:Create connection error, url: jdbc:mysql://....................... communications link

【Azure 应用服务】使用Docker Compose创建App Service遇见"Linux Version is too long. It cannot be more than 4000 characters"错误

{ "code":"DeploymentFailed", "message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usag

【Azure 应用服务】使用Python Azure SDK 来获取 App Service的访问限制信息(Access Restrictions)

azure.core.exceptions.ClientAuthenticationError: Authentication failed: AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is

【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误

[500 The page cannot be displayed because an internal server error has occurred.] [scriptProcessor could not be found in "fastCGI" application configuration] [EXECUTE|500|0|0x585|CONFIG_SUCCESS|PHP7

【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided

问题描述 在App Service For Linux 中,部署NodeJS应用,应用启动失败。 报错信息为: 2023-08-29T11:21:36.329731566Z RangeError: Incorrect locale information provided2023-08-29T11:

【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器

问题描述 在App Service for linux上创建一个PHP应用,通过 phpinfo() 查看PHP的扩展设置,发现JIT没有被开启, jit_buffer_size 大小为0. 那么,在App Service的环境中,如何开启JIT呢? 问题解答 PHP 8在PHP的内核中添加了JIT