首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >docker -组合起来并不会创建最新的标记,也不会创建坞版本控制的实际工作方式。

docker -组合起来并不会创建最新的标记,也不会创建坞版本控制的实际工作方式。
EN

Stack Overflow用户
提问于 2017-12-19 16:02:46
回答 1查看 639关注 0票数 0

情况:

我已经将现有的代码从gitlab克隆到我的本地机器上。然后我做了:

代码语言:javascript
运行
复制
docker-compose -f env/docker-compose.base.yml -f env/dev/docker-compose.yml up -d

然后我有了一个带有标签local的新图像。

然后更改Dockerfile中的一些内容,然后将代码推送到gitlab。然后我删除了这个图像:

代码语言:javascript
运行
复制
docker rmi -f image_hash

然后,第一个重新构建新映像的命令:

代码语言:javascript
运行
复制
docker-compose -f env/docker-compose.base.yml -f env/dev/docker-compose.yml up -d

然后我有了标签local的新图像。(而不是latest,但为什么?)

然后我想推一下这个图像。是我推的。然后在Amazon中,我看到了带有“本地”标签的图像。:/

我真的很困惑,你们是如何处理这个版本化坞映像流的?

我在临时服务器中有一个脚本,它使用:latest来获取新的映像。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-19 18:18:31

不幸的是,你对码头组合的使用从根本上讲是错误的。

因此,首先要做的事情是: Docker被用作部署服务、卷、网络等堆栈的开发工具,这样任何个人都可以进入并旋转使用应用程序所需的环境。

这是唯一的目标-是的,当然-它可以“构建一个图像”,如果您有一个build节在您的撰写文件;但是,它实际上只用于然后立即运行该映像。我想您可以这样构建,然后通过标记重命名您的图像--但这不是正确的过程。

其次,如果您只想要,那么就会为您的撰写文件构建映像--您想要使用docker-compose build;这将按照指定的指令进行构建--但是不会运行它。

现在-实际回答您的问题;您希望使用命令docker builddocker tag来完成您的任务。

假设您的本地路径中有一个Dockerfile,您将运行:

代码语言:javascript
运行
复制
docker build -t my_image_name .

这将立即用latest标记它。标签是completely arbitrary -它非常类似于一个Git标签,除了Git标签不能被覆盖而不重写历史。我还应该指出,使用最新版本的是不好的实践。为什么?因为你不知道你在部署什么--如果你总是引用最新的,当你去更新你的服务时,它会发现一个你没有想到的新的最新的--你可能会遇到麻烦。

现在,latest被用作缺省值--但是您可以通过以下方式轻松地给它取一个名称:

代码语言:javascript
运行
复制
docker build -t my_image_name:my_tag .

最后--如果您想重命名该标记(如果您选择,可以在这里用my_tag替换latest ),那么它是任意的,除非它是默认的。您还可以创建一个完全不同的图像名称,如果您愿意的话。

码头标签my_image_name:my_tag my_new_name:latest。

希望这能为你扫清一切!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47890793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档