当前位置: 首页 > 面试题库 >

Docker-重建并推送更新的映像到Docker云的正确方法是什么?

廖诚
2023-03-14
问题内容

我目前正在做什么:

Dockerfile:

FROM python:3.5.1

ENV PYTHONUNBUFFERED 1

RUN mkdir /www
WORKDIR /www
ADD deps.txt /www/
RUN pip3 install -r deps.txt
ADD . /www/
RUN chmod 0755 /www/docker-init.sh

生成命令:

docker build -t my-djnago-app:latest .

标记:

docker tag my-djnago-app:latest lolorama/my-djnago-app-img:latest

推动:

docker push lolorama/my-djnago-app-img:latest

完成这些步骤后,存储库映像仍未更新。我不断收到此消息-“图层已存在”。

The push refers to a repository [docker.io/lolorama/my-django-app-img]
fd5aa641b308: Layer already exists
d9c60c6f98e8: Layer already exists
d9d14867f6d7: Layer already exists
64ce166099ca: Layer already exists
73b670e35c69: Layer already exists
5f70bf18a086: Layer already exists
9ea142d097a5: Layer already exists
52f5845b1de0: Layer already exists
e7fadb3ab9d4: Layer already exists
cef72744de05: Layer already exists
591569fa6c34: Layer already exists
998608e2fcd4: Layer already exists
c12ecfd4861d: Layer already exists

我究竟做错了什么?


问题答案:

我发现了问题,这要归功于@ lorenzvth7!

我有两张带有相同标签的图像(我正在推送到云中)。

解决方法是:

  1. 检查您的图像并找到两个或多个具有相同标签的图像:

    docker images
    
  2. 删除它们:

    docker rmi --force 'image id'
    
  3. 而已!请按照上述我的问题中的步骤进行操作。



 类似资料:
  • 问题内容: 我已经创建了自己的docker文件(该文件运行一个显示“ helloworld”的shell脚本)。图像是“ hellodocker”,标签是“ mytag”,我现在拥有: 如何将Docker映像推送到dockerhub?我用。这给出了“无此类ID”错误。我想念什么?提前致谢。 问题答案: 您要么在构建时就将其标记为标签,例如 或创建绑定到同一图像的新标签,即

  • private registry在docker 1.10.3的基础上工作得很好,但在docker更新到1.12.0后,我无法拉/推映像。 我已将/etc/sysconfig/docker修改为: 或 更重要的是,我只是运行一个简单的命令来启动私有注册表进行测试,其他的都是默认的: 未配置代理。总而言之,它只是一个测试的安静的样本环境。

  • 我无法将docker映像推送到低于错误的工件注册表 登录和拉取工作正常 詹金斯档案: Dockerfile: 我不确定这是怎么回事。我可以在jenkins从属节点上手动推送图像。但使用詹金斯会产生错误 我构建工作的日志 这是我的构建日志中的内容。

  • 我无法将docker映像推送到heroku注册表。 根据docker的说法,我已成功登录: 在那之后,我运行了,我得到了一些令人困惑的错误,说我试图推送到一个不安全的repo,而de-output中的url看起来是安全的(以https开头)。我做错了什么? 我正在使用以下jib配置: jib的Maven输出:build wiht-X:

  • 问题内容: 我正在通过创建带有一些nodejs指令的来玩docker。现在,每次更改dockerfile时,我都会通过在项目文件夹中运行来重新创建映像,但这每次都会创建一个新映像,并很快吞没我的ssd。 更改dockerfile时,是否有一种方法可以更新现有映像,或者每次更改文件时都被迫创建一个新映像? 抱歉,这是一个愚蠢的问题 问题答案: 只要没有指令,Docker构建支持缓存。如果您正在积极地

  • 目前,我发现谷歌云构建发生在构建docker图像的时候(不像我想象的那样,它会构建我的图像,然后执行我的图像来完成所有的构建)。那是在这篇文章里 谷歌云构建的快速启动 我有一个Dockerfile现在很简单 我有一个单一的下载和提取下载任何工件(zip文件)从最后的单构建运行构建(只有修改的服务器被构建或依赖于上一个CI构建的变化的服务器被构建,就像下游库可能被更改)。第一行只是列出了我需要在一个