首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用新代码更新Docker容器

使用新代码更新Docker容器
EN

Stack Overflow用户
提问于 2018-09-05 03:38:41
回答 2查看 9.3K关注 0票数 8

我看过一些其他的答案,但似乎没有一个是我想要的。

我写了一个python机器人,我把它交给了一个docker容器,这个容器是通过

docker run -dit --restart unless-stopped -v /home/dockeradmin/pythonApp/:/pythonApp--name python-bot-app python-bot

我的问题是,当我更改python项目的代码时,如何更新我的docker容器。现在我通常只是重建镜像,停止/修剪容器,然后重新启动它,但是这似乎非常浪费。

有没有一种简单或“正确”的方法来做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2018-09-09 17:31:21

在代码更改时重新构建映像是一种规范的方法,如果处理得当,根本不会浪费。

你的pythonApp代码应该被COPY'd到你的镜像中作为最后一步(经验法则: dockerfile中更改最频繁的步骤应该放在最后)。这意味着重建将非常快,因为所有其他步骤都将被缓存。如果你只有几个kB的源代码更改,它只会导致几个kB的单个新层。停止和启动容器也是非常轻量级的。

在遵循这种方法时,没有什么需要担心的。

票数 3
EN

Stack Overflow用户

发布于 2018-09-05 04:55:27

有一种“简单”但可能不是“正确”的方法--我可以将其归类为“变通方法”。

首先启动你的工作容器,我将以ubuntu为例,但你当然可以根据你的需要进行调整:

代码语言:javascript
复制
docker run -dit --name work-container -v /path-to-code:/code ubuntu bash -c "while true; do sleep 10; done"

因此该命令将在后台为您启动ubuntu,并进行无休止循环。在-v部分中,您应该挂载您更改的代码。所以现在打开新的控制台并输入:

代码语言:javascript
复制
docker exec -it work-container bash

因此该命令将在后台容器中启动新shell。所以在这个外壳中,你可以在容器中做任何你想做的事情,比如cd /code && ./do-something-with-your-python。当您的代码挂载在容器中的/code下时,您将实时看到更改,您可以运行一些程序,然后点击ctrl+c,并在代码更改后重新启动它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52172970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档