docker 升级容器命令

docker 升级容器命令是什么?想要实现docker在线升级,可以在docker daemon start的时候,去检查容器是不是running,如果running,那么清理容器遗留进程,接着再重新start容器。以保证仍然作为容器的父进程进行管理。当然,这就要求给docker新增一段代码以实现该功能。

另外,升级容器的思路还有:升级 Docker Image;关闭就容器,并删除;重新开启新的容器,这样才能使用新的代码;升级数据库。

升级 Docker Image

升级Image很简单,只要从服务器拉下来最新的数据就行了

docker pull quay.io/sameersbn/redmine:latest

关闭就容器,并删除

到工作目录 /data, 使用 docker-compose 来关闭级容器

cd /datadocker-compose stopdocker rm data_redmine_1

重新开启新容器,这样才能使用新的代码

因为代码升级,新增加了些环境参数的配置

REDMINE_SECRET_TOKENDB_NAME

这两个一个是log提示的,另一个是发现服务升级完后,旧用户登录不了,查原因知道是因为数据库名称的默认值变了。可能受影响的还有其他参数,需要在详情页仔细看看。

docker-compose start

升级数据库

docker exec-it data_redmine_1 bashcd $WORKDIRRAILS_ENV=production bundle exec rake db:migrate