Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
新构建后docker中的图像和容器_Docker - Fatal编程技术网

新构建后docker中的图像和容器

新构建后docker中的图像和容器,docker,Docker,我刚从Docker开始,我有一个问题,给出了以下场景: 我建立了一个形象 我在容器中运行这样的图像 我注意到我在Dockerfile中遗漏了一些东西,我构建了一个新版本的图像 我的问题是:容器是否知道更新的图像?如果没有,正确的工作流程是什么?到目前为止,我是这样做的:停止容器->删除它->从最新的图像中创建一个同名的新容器。。。。但我认为这不是正确的方法。停止运行的容器并重新启动它就足够了。它应该拾取映像的最新构建版本。停止运行的容器并重新启动它就足够了。它应该获取图像的最新构建版本 容器是否

我刚从Docker开始,我有一个问题,给出了以下场景:

  • 我建立了一个形象
  • 我在容器中运行这样的图像
  • 我注意到我在Dockerfile中遗漏了一些东西,我构建了一个新版本的图像

  • 我的问题是:容器是否知道更新的图像?如果没有,正确的工作流程是什么?到目前为止,我是这样做的:停止容器->删除它->从最新的图像中创建一个同名的新容器。。。。但我认为这不是正确的方法。

    停止运行的容器并重新启动它就足够了。它应该拾取映像的最新构建版本。

    停止运行的容器并重新启动它就足够了。它应该获取图像的最新构建版本

    容器是否知道更新的图像

    不,您的容器仍在使用图像中启动它所基于的所有内容

    什么是正确的工作流程

  • 停止上一个容器
  • 使用较新的映像运行新容器
  • 注意:您可以
    docker rm
    使用以前的容器,也可以不使用以前的容器,但如果要使用相同的容器名称运行新容器,则必须删除以前的容器

    容器是否知道更新的图像

    不,您的容器仍在使用图像中启动它所基于的所有内容

    什么是正确的工作流程

  • 停止上一个容器
  • 使用较新的映像运行新容器

  • 注意:您可以
    docker rm
    使用以前的容器,也可以不使用以前的容器,但如果要使用相同的容器名称运行新容器,则必须删除以前的容器

    容器只是一个运行进程的隔离环境,当您构建新映像时,docker将使用overlay FS并为新映像添加新层。所以对于一个运行的容器来说,它的图像是一种“静态”的东西。如果您想将图像信息传递给该进程,可以使用
    -e
    运行容器来定义新的环境变量。非常感谢@shuzhz。你能给我指一个关于如何使用这些环境变量的教程吗?@user3727540,很乐意帮助:-)你可以参考更多细节。一个简单的例子是
    docker运行--rm-e“FOO=BAR”alpine:3.3 env
    ,它将启动一个容器,然后在其中运行命令
    env
    ,列出容器的所有环境变量并退出。您将在输出中看到
    FOO=BAR
    。容器只是一个运行进程的隔离环境,当您构建新映像时,docker将使用overlay FS并在“写时复制”方式上为新映像添加新层。所以对于一个运行的容器来说,它的图像是一种“静态”的东西。如果您想将图像信息传递给该进程,可以使用
    -e
    运行容器来定义新的环境变量。非常感谢@shuzhz。你能给我指一个关于如何使用这些环境变量的教程吗?@user3727540,很乐意帮助:-)你可以参考更多细节。一个简单的例子是
    docker运行--rm-e“FOO=BAR”alpine:3.3 env
    ,它将启动一个容器,然后在其中运行命令
    env
    ,列出容器的所有环境变量并退出。您将在输出中看到
    FOO=BAR