繁体   English   中英

无法在本地私有注册表上推送 docker 镜像

[英]Unable to push docker image on local private registry

我正在努力解决这个问题。 我必须将 docker 映像(与 docker-compose up 一起正常工作)推送到我的本地注册表,该注册表是使用以下命令设置的:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

这是'docker ps'的输出

5fe319f37d5c registry:latest "/entrypoint.sh /etc/" 41 hours ago Up About an hour 0.0.0.0:5000->5000/tcp registry

我按照步骤推送图像:

docker tag gatewayapi_api localhost:5000/gatewayapi_api docker-compose up --build docker tag gatewayapi_api localhost:5000/gatewayapi_api docker push localhost:5000/gatewayapi_api

但在每种情况下我都得到

file integrity checksum failed for "etc/default/cacerts

我尝试了所有解决方案(重新启动 docker、清理映像、重新启动注册表)

提前致谢。

这个GitHub 问题中,人们正在分享他们的发现如何解决该问题。

特尔;博士:

  • 在 Mac 的 docker 上,您可能需要在应用程序 Preferences->Advanced->Memory 中增加 docker VM 内存
  • 如果没有帮助,那么清理可能会做到(帮助我): docker system prune -a

您的注册表与官方图像一起正常工作吗? 像这样:

docker pull alpine
docker tag alpine localhost:5000/my-alpine
docker push localhost:5000/my-alpine

在 Ubuntu 20.04 中使用包 docker.io 遇到了同样的问题。 将图像推送到我的私有 docker 注册表时会出现错误“文件完整性校验和失败”。 在我的情况下,问题是通过遵循 Docker 网站的官方修复来解决的:

https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities

请注意,我的 Docker 私有注册表作为容器运行,如上所示:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

我正在同一台 Ubuntu 20.04 计算机上从同一个 Docker 引擎构建和推送 Docker 映像,通过套接字(而不是以太网)进行通信。

我不知道问题是来自构建镜像的 Docker 客户端还是来自接收镜像的 Docker 私有注册表,它本身作为容器运行。 无论如何,按照上述官方修复是我唯一需要解决的问题,我没有改变其他任何东西。

  1. 以具有 sudo 权限的用户身份登录 Ubuntu 或 Debian 主机。

  2. 编辑 /etc/default/grub 文件。 添加或编辑 GRUB_CMDLINE_LINUX 行以添加以下两个键值对:

GRUB_CMDLINE_LINUX="cgroup_enable=内存交换账户=1"

  1. 更新 GRUB。 如果您的 GRUB 配置文件的语法不正确,则会发生错误。 在这种情况下,重复步骤 2 和 3。

$ 须藤更新-grub

  1. 更改在系统重新启动时生效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM