在 docker 上安装运行时有意义吗?

我正在考虑在 docker 上部署一些应用程序(aws beanstalk 是提供者)。通过各种资源,我发现建议使用基本图像,在我的情况下是官方golang 图像,但我想知道为什么需要在容器上安装运行时(即 Golang)。您不应该在 docker 容器上部署二进制文件吗?


尚方宝剑之说
浏览 211回答 2
2回答

红颜莎娜

我不是 docker 爱好者,但总的来说,Go 运行时已编译到您的二进制文件中,除此之外您什么都不需要。Go 映像包含 SDK,而不是运行时。仅当您想在容器中构建应用程序时,它才有用。否则你不需要它。从该图像的文档: The most straightforward way to use this image is to use a Go container as both the build and runtime environment.因此,也许只是在映像上构建源代码是 Docker 模式,或者这只是某些人从解释型语言中养成的习惯。就我个人而言,当我部署 Go 应用程序(不是通过 docker)时,我在 CI 机器上构建了一个工件,这就是我正在部署的,而不是源。

芜湖不芜

我更喜欢静态编译,然后只用你需要的用户空间构建一个最小的容器,这是一个例子。我个人喜欢在官方容器中构建,然后将二进制文件复制到我的部署容器中,我将 docker 注入到我的构建容器中,如下所示docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):$(which docker)这样我就在我的构建容器中构建了我的 docker 容器,只需添加带有 Dockerfile ADD 的二进制文件
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go