gpt4 book ai didi

docker - 如何在镜像更改后升级 docker 容器

转载 作者:bug小助手 更新时间:2023-10-28 01:28:35 25 4
gpt4 key购买 nike

假设我拉了官方mysql:5.6.21 image .

我已经通过创建几个 docker 容器来部署这个镜像。

这些容器已经运行了一段时间,直到 MySQL 5.6.22 发布。 mysql:5.6 的官方镜像随着新版本的更新而更新,但我的容器仍然运行 5.6.21。

如何将镜像中的更改(即升级 MySQL 发行版)传播到所有现有容器?这样做的正确 Docker 方式是什么?

最佳答案

在评估答案并研究我想总结的主题之后。

Docker升级容器的方式好像是这样的:

应用程序容器不应存储应用程序数据。这样,您可以随时通过执行以下操作将应用容器替换为其较新版本:

docker pull mysql
docker stop my-mysql-container
docker rm my-mysql-container
docker run --name=my-mysql-container --restart=always \
-e MYSQL_ROOT_PASSWORD=mypwd -v /my/data/dir:/var/lib/mysql -d mysql

您可以将数据存储在主机上(在作为卷安装的目录中)或特殊的仅数据容器中。阅读更多相关信息

在容器中升级应用程序(例如使用 yum/apt-get upgrade)被认为是一种反模式。应用程序容器应该是不可变的,这应保证可重现的行为。一些官方应用程序镜像(尤其是 mysql:5.6)甚至没有设计为 self 更新(apt-get upgrade 不起作用)。

我要感谢所有给出答案的人,所以我们可以看到所有不同的方法。

关于docker - 如何在镜像更改后升级 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26734402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com