【问题标题】:Why I can't run a newly created Docker image?为什么我无法运行新创建的 Docker 映像?
【发布时间】:2018-08-09 19:00:27
【问题描述】:

我从基本图像ubuntu:bionic 创建了两个新图像anubh_custom_build_image/ubuntu_bionic:version1ubuntu_bionic_mldev:version1。创建定制的 ubuntu-docker 镜像的目的是在 windows 平台上使用 Linux 系统。我在过去遇到过很多问题,比如安装新版本的tensorflow library! pip install -q tf-nightly,我找不到! 的替代品来在windows cmd-prompt/PowerShell 上运行这个命令。此外,我想在我的代码库上投入更多时间,而不是在不同的操作系统上解决问题。因此,我从 docker 中提取了最新的 Ubuntu 映像,安装了一堆库供我使用,并使用 docker commit 命令提交:

docker commit 503130713dff ubuntu_bionic_MLdev:version1

我可以使用:

PS C:\Users\anubh> docker image ls
REPOSITORY                               TAG                 IMAGE ID            CREATED             SIZE
ubuntu_bionic_mldev                      version1            e7d1b154b69f        21 hours ago        9.33GB
anubh_custom_build_image/ubuntu_bionic   version1            3c98f8954731        22 hours ago        9.33GB
tensorflow/tensorflow                    latest              2c8d1fd8bde4        2 days ago          1.25GB
ubuntu                                   bionic              735f80812f90        2 weeks ago         83.5MB
ubuntu                                   latest              735f80812f90        2 weeks ago         83.5MB
floydhub/dl-docker                       cpu                 0b9fc622f1b7        2 years ago         2.87GB

当我尝试使用这些图像启动容器时,以下命令运行时没有任何错误。

PS C:\Users\anubh> docker run anubh_custom_build_image/ubuntu_bionic:version1
PS C:\Users\anubh> docker run ubuntu_bionic_mldev:version1

编辑:

问题是运行命令正在执行,但容器没有为上述两个图像旋转。我很抱歉在第一篇文章中附上了错误的错误信息,我现在编辑了它。以下两个容器是使用 docker run -it -p 8888:8888 tensorflow/tensorflowdocker run ubuntu:bionic 命令启动的。

PS C:\Users\anubh> docker container ls
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                NAMES
94d59b217b70        tensorflow/tensorflow   "/run_jupyter.sh --a…"   21 hours ago        Up 21 hours         6006/tcp, 8888/tcp   boring_clarke
503130713dff        ubuntu:bionic           "bash"                   38 hours ago        Up 38 hours                              awesome_bardeen
  • 谁能建议我从基础图像ubuntu:bionic 运行这些图像anubh_custom_build_image/ubuntu_bionic:version1ubuntu_bionic_mldev:version1 缺少什么 容器?
  • 另外,我在磁盘上找不到任何这些图像的位置。 任何人都可以建议在 Windows 操作系统中查找的位置吗?

注意:我将来会编写一个 dockerfile 来构建自定义映像,但现在,我想使用 commit 命令来创建新映像并使用它们。

【问题讨论】:

  • 这是有意义的: docker run anubh_custom_build_image/ubuntu_bionic:version1 但是在您的打印屏幕上,您缺少标签,并且 docker 说找不到“最新”。当您询问标签“version1”时,请粘贴输出
  • 第二个docker run 应该可以工作。您有 6 张图片,包括 anubh_custom_build_image/ubuntu_bionic。如果您未指定标记 (:[TAG]),则假定值为 latest。您没有标记为latestanubh_custom_build_image/ubuntu_bionic 的图像,因此您不能省略该标记。你写的(但没有在你的控制台中显示)docker run anubh_custom_build_image/ubuntu_bionic:version1 应该像 docker run ubuntu_bionic_mldev:version1 一样工作。
  • 请不要将错误消息粘贴为屏幕截图。将错误的实际文本复制并粘贴到您的问题中。

标签: docker dockerfile docker-machine


【解决方案1】:

您的docker run 命令不起作用,因为您的末尾没有:version1 标记。 (你的问题声称你有,但你引用的实际错误没有。)

但是:如果这不仅仅是一个简单的拼写错误,那么社区可能无法为您提供帮助,因为您没有关于图像中的内容的文档。 (如果不是“社区”,那么“六个月后,当你发现你的镜像存在严重的安全漏洞时”。)了解 Dockerfile 系统的工作原理并使用 docker build 构建自定义镜像。最佳实践工作流往往根本不使用docker commit

【讨论】:

  • 感谢您指出错误。错误地,我错误地附上了最后一张截图。我不应该那样做的。我知道错字错误。请避免它。问题是即使在提供版本之后,命令也会运行,但容器永远不会启动,如更新后的帖子所示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 2021-06-09
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多