docker - 容器镜像名称未从镜像本身转移
问题描述
我运行docker build
带有-t
参数的命令,以便用相应的名称标记图像。
当我这样做时docker image ls
,我可以看到相应的图像和我与参数一起使用的名称-t
。尽管如此,当我从该映像运行容器时,该docker ps
命令会显示新容器,但该IMAGE
列未显示我为创建此容器的映像设置的名称。它显示 IMAGE ID 值而不是 IMAGE 名称,例如8a135cfa3821
。
我正在使用 Pycharm 2018.1 运行 docker 容器。通过命令行运行这个镜像的容器,它工作得非常好。
下图显示了docker ps -a
和docker image ls
命令输出的相关列:
解决方案
我知道 docker 会将图像名称取消引用到docker ps
输出中的 ID 的两个原因:
您使用图像 id 而不是图像名称来启动容器。这可以由您用来启动容器的工具自动完成。您可以有多个引用指向同一个 ID,因此没有通用的方法可以从图像 ID 向后查找用于启动容器的原始图像名称。
您用于启动容器的图像引用现在指向不同的 ID。如果您删除标签、更改标签的目的地或拉取新版本的图像,就会发生这种情况。容器基于镜像 ID 运行,因此即使你拉取不同的镜像,它们也会继续按原样运行,并且镜像 ID 本身是不可变的,只要你有容器使用它就不能删除。
推荐阅读
- go - 子对象未使用 golang 解析 graphql
- c# - 实体框架核心生成奇怪的sql
- ruby-on-rails - 在 Rails 应用程序中使用 Simple Scheduler Gem 调度任务
- wcf - 调整 WCF IIS 服务参数,无需重启服务或 IIS
- tridion - Tridion 2013 SP1 HR1 中的内容取消发布问题
- sql-server - SQL Server 2016 奇怪的行为 - OR 条件给出 0 行但 AND 条件给出了一些行
- java - 没有元素硒的Sendkeys java
- javascript - 在 for 循环中等待事件函数
- node.js - 如何在开发人员模式下为 Javascript (node.js) 运行 Azure Application Insights
- django-cms - 如何从 django CMS 菜单中删除 aldryn-newsblog 文章