docker コンテナのイメージ更新

前に、docker stackでwordpressを作りましたが、これイメージ更新どうやってやるんだ?と思ったのでメモ程度

php-fpm版で作ると3つのコンテナで動作していることがわかります。

$ docker service ls
*****        wordpress_www_mysql         replicated          1/1                 mariadb:latest         
*****        wordpress_www_web           replicated          1/1                 nginx:latest           *:****->80/tcp
*****        wordpress_www_wordpress     replicated          1/1                 wordpress:fpm   

これらのイメージを更新するコマンドは

~$ docker service update --image nginx wordpress_www_web 
wordpress_www_web
overall progress: 1 out of 1 tasks 
1/1: running   [==================================================>] 
verify: Service converged 

~$ docker service update --image wordpress:fpm wordpress_www_wordpress 
wordpress_www_wordpress
overall progress: 1 out of 1 tasks 
1/1: running   [==================================================>] 
verify: Service converged 

~$ docker service update --image mariadb wordpress_www_mysql 
wordpress_www_mysql
overall progress: 1 out of 1 tasks 
1/1: running   [==================================================>] 
verify: Service converged 

でできます。ローリングアップデートを行えば、その間のサービス停止はなくなるので、便利ですね。

(これ更新するイメージの指定を間違えたらどうなるんだろうな・・・)