【问题标题】:Having two images of docker for production and development拥有两个用于生产和开发的 docker 镜像
【发布时间】:2015-01-19 04:38:28
【问题描述】:

我开始使用 docker,但我对开发环境和生产环境之间的区别感到困惑。

目前在我的开发 docker 中我使用这个

docker run -d -v /home/code:/var/www/code 这样我就可以从我的主机编辑文件了。

现在我希望在生产中我不将代码安装为卷,而是将其与所有代码一起发布。

所以我需要制作单独的图像并使用

ADD /home/code:/var/www/code

或者有什么方法可以只从一张图片中做到这一点

【问题讨论】:

  • 理想情况下,我认为“Dev”和“Prod”之间的区别应该是规模(容器实例的数量)和对数据的访问(卷或数据库)
  • @MarkO'Connor 你能解释一下你的意思吗?我想了解更多
  • 将您的软件打包为容器,保存在注册表中。在注册表中标记映像使您可以随时在任何机器上运行版本。对开发和测试很有用。通常你只会在生产中运行一个实例。它应该以与 Dev 相同的方式启动,但您需要更多实例才能处理更大的负载。其次,您的生产系统将使用自己的数据,无论是在数据卷中还是在开发人员通常无法访问的生产数据库中。
  • @MarkO'Connor 感谢标记,我将标记容器,如发布 1、2、3,并且我在单独的容器中拥有数据库。我唯一不确定的是有两个单独的图像用于开发和生产。就像在 prod code 中一样,它将成为图像的一部分,但在 dev 中它将从主机安装。这是正确的做法还是您推荐了其他东西

标签: ubuntu docker production-environment


【解决方案1】:

我建议您使用两张图片:例如 baseapp

您的base 图像设置了除您的代码之外的所有内容。例如,如果您的应用程序是用 Java 编写的,它将设置 JDK。 app 映像是您构建并发送到生产或其他环境的映像。这使您可以在开发过程中使用base 映像,只需像上面那样安装卷即可。

【讨论】:

  • 没问题。另外,我只是想澄清一下,app 图像应该是FROM base
猜你喜欢
  • 1970-01-01
  • 2021-12-20
  • 2018-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-09
相关资源
最近更新 更多