Docker 库伯内特斯没有拿出最新的图片
令我困惑的事情 我已经编写了一个docker文件v1,其中包含我的代码v1 例如:Docker 库伯内特斯没有拿出最新的图片,docker,kubernetes,Docker,Kubernetes,令我困惑的事情 我已经编写了一个docker文件v1,其中包含我的代码v1 例如: const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => res.send('Hello World!')) app.listen(port, () => console.log(`Example app listening on port ${port
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
我正在用标签开发(leexha/sample:development)构建我的图像并将其推送到DockerHub。例如,我的代码的v2如下所示
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => res.send('Hello EARTH!'))
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
我可以确认我的最新代码在docker运行时被推送到docker hub,并且工作正常
然而,当我尝试在kubernetes中运行最新的docker映像时,执行kubectl run sample--image=leexha/sample:development
,它奇怪地获取了我代码的v1(Hello World)
这有什么原因吗?是的,性能。根据默认的拉动策略是
IfNotPresent
,除非图像使用标记update
。通过将imagePullPolicy
设置为始终
进行覆盖
编辑:您不希望在生产中检查和提取更新的图像,因为标记的图像永远不会更改。即使是支票也可能很昂贵。在开发中,您可以使用
latest
或使用imagePullPolicy
覆盖,您可以在部署文件中定义imagePullPolicy:Always
。
对于生产环境,不要使用latest
docker图像标记