docker - Docker提交而不运行

标签 docker

当我运行docker build .时,吐出的ID是图像的,这就是我认为提交给docker repo的东西。但是,当我运行docker commit <id>时,它说这不是有效的容器ID。我通常通过在容器中启动图像然后提交该ID来解决此问题。但是,如果容器要求链接的容器才能运行,该怎么办?运行容器可能会花费很长时间,尤其是当构建过程在运行脚本中时。如果失败,或者需要链接的容器成功,则该过程将退出,并且我的容器将关闭,这将不允许我创建新镜像。有没有一种方法可以构建您的dockerfile并同时提交到存储库?备择方案?

最佳答案

Dockerfile旨在提供一种完全独立于主机的方式,可重复构建镜像,而无需依赖于主机配置的任何方面。这就是为什么链接不包含在各个构建步骤中的原因,因为它会使构建在构建时依赖于主机上的其他容器。因此,Dockerfile不是构建容器的唯一方法。

当您必须具有依赖于主机的构建环境时,请将Dockerfile用于基础部分,安装依赖项等,然后使用从您选择的脚本/配置管理系统运行的docker run来设置其他容器并进行实际构建。构建完成后,您可以提交生成的容器,用名称标记它,然后将其推送到存储库。

要解决帖子顶部的问题,如果您想给由Dockerfile生成的镜像命名,请使用docker tag image-id name

  • Committing接收一个容器并生成一个图像
  • 标记获取图像并为其命名为
  • push将图像命名为一个名称,并使其可在以后拉出。
  • 关于docker - Docker提交而不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26554801/

    相关文章:

    docker - 为什么在使用 macvlan 时无法从外部计算机通过主机名 ping 容器?

    docker - Docker 中的 rq : "Could not resolve a Redis connection" with an otherwise working redis connection

    docker - Docker在其卷中使用Dockerfile和永久帮助文件制作镜像

    linux - 使用与主机上不同的用户启动 Docker 容器

    linux - docker 运行说 "No such image"

    docker - 错误:来自守护程序的错误响应:作用域 “global”的数据存储未初始化

    postgresql - Postgres Docker 图像 : Failed to map database to host

    python - docker pip install 不适用于需求文件

    c - 警告 : Error disabling address space randomization: Operation not permitted

    macos - 在 Mac 上的 docker ubuntu 镜像上运行 apt-get update 会导致 "File has unexpected size"