簡體   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