Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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映像_Docker - Fatal编程技术网

更新没有原始docker文件的docker映像

更新没有原始docker文件的docker映像,docker,Docker,我正在开发运行在ec2服务器上docker映像中的Flask应用程序 旧的开发人员似乎已经删除了原始的docker文件,我似乎找不到任何关于如何在没有原始docker文件的情况下将我的更改推入docker映像的说明 我可以使用以下方法手动复制更改: docker cp newChanges.py doc:/root/doc/server\u python/ 但我似乎找不到重新启动烧瓶的方法。我知道这不是理想的解决方案,但这是我唯一的想法。您可以尝试检查图像的历史记录,从那里您可能可以重新创建Do

我正在开发运行在ec2服务器上docker映像中的Flask应用程序

旧的开发人员似乎已经删除了原始的docker文件,我似乎找不到任何关于如何在没有原始docker文件的情况下将我的更改推入docker映像的说明

我可以使用以下方法手动复制更改:

docker cp newChanges.py doc:/root/doc/server\u python/


但我似乎找不到重新启动烧瓶的方法。我知道这不是理想的解决方案,但这是我唯一的想法。

您可以尝试检查图像的历史记录,从那里您可能可以重新创建Dockerfile。尝试使用
docker历史记录--无trunc图像名称


有关更多详细信息,请参见。您可以尝试检查图像的历史记录,从中您可能可以重新创建Dockerfile。尝试使用
docker历史记录--无trunc图像名称


有关更多详细信息,请参见。有一种方法可以将
newChanges.py
添加到现有图像,并使用新标记提交该图像,这样,如果遇到任何问题,您将有一个后退选项

假设您运行alpine官方映像,但没有DockerFile

每次重新启动映像时,都不会有
newChanges.py

docker run --rm -name alpine alpine
在图像中使用
ls
查看在Dockerfile中创建的现有文件列表

docker cp newChanges.py alpine:/
运行
ls
并验证文件是否已被复制

下一步

要将这些更改提交到正在运行的容器,请执行以下操作:

Docker ps
获取容器ID并运行:

docker commit 4efdd58eea8a updated_alpine_image
现在运行您的alpine图像,您将看到更新后的更改

docker run -it updated_alpine_image
这是您将在具有DockerFile的update_alpine_图像中看到的内容


这就是如何从现有图像重建图像。您也可以尝试@uncletall answer。

有一种方法可以将
newChanges.py
添加到现有图像,并使用新标记提交该图像,这样,如果遇到任何问题,您将有一个后退选项

假设您运行alpine官方映像,但没有DockerFile

每次重新启动映像时,都不会有
newChanges.py

docker run --rm -name alpine alpine
在图像中使用
ls
查看在Dockerfile中创建的现有文件列表

docker cp newChanges.py alpine:/
运行
ls
并验证文件是否已被复制

下一步

要将这些更改提交到正在运行的容器,请执行以下操作:

Docker ps
获取容器ID并运行:

docker commit 4efdd58eea8a updated_alpine_image
现在运行您的alpine图像,您将看到更新后的更改

docker run -it updated_alpine_image
这是您将在具有DockerFile的update_alpine_图像中看到的内容

这就是如何从现有图像重建图像。您也可以尝试@uncletall答案。

  • 如果您只想在
    docker cp
    之后重新启动,您可以
    docker停止$your\u container
    ,然后
    docker启动$your\u container

  • 如果要将
    newChanges.py
    更新为docker图像而不使用原始
    Dockerfile
    ,可以使用
    docker导出-o$your_tar_name.tar$your_container
    ,然后
    docker导入$your_tar_name.tar$your_new_图像:tag
    。以后,始终将
    tar
    保留到备份服务器以备将来使用

  • 如果您希望以后继续开发,请在将来使用
    Dockerfile
    进行进一步更改:

    • 您可以使用
      docker commit
      生成一个新映像,并使用
      docker push
      将其推送到
      dockerhub
      ,其名称类似于
      my\u docker\u id/my\u image\u name:v1.0
    • 您的新
      Dockerfile
来自my_docker_id/my_image_name:v1.0 #你的新东西在这里 添加另一个_new_change.py/root/ #其他
  • 如果您只想在
    docker cp
    之后重新启动,您可以
    docker停止$your\u container
    ,然后
    docker启动$your\u container

  • 如果要将
    newChanges.py
    更新为docker图像而不使用原始
    Dockerfile
    ,可以使用
    docker导出-o$your_tar_name.tar$your_container
    ,然后
    docker导入$your_tar_name.tar$your_new_图像:tag
    。以后,始终将
    tar
    保留到备份服务器以备将来使用

  • 如果您希望以后继续开发,请在将来使用
    Dockerfile
    进行进一步更改:

    • 您可以使用
      docker commit
      生成一个新映像,并使用
      docker push
      将其推送到
      dockerhub
      ,其名称类似于
      my\u docker\u id/my\u image\u name:v1.0
    • 您的新
      Dockerfile
来自my_docker_id/my_image_name:v1.0 #你的新东西在这里 添加另一个_new_change.py/root/ #其他