项目在docker容器集群上跑, 每次部署会干掉旧容器, 然后根据打包好的新镜像启动容器.
这里有个严重的问题, 就是如果新的镜像出现问题, 旧容器又被干掉, 会导致业务无法访问.
请问是否有办法将打包的镜像先测试能否正确启动容器?
PHPz2017-04-27 09:04:21
クラスターは docker swarm のようなものです。コンテナー イメージをアップグレードするときは、まず新しいコンテナーを起動し、新しいコンテナーが正常に起動した後、古いコンテナーを停止します。
Docker がコンテナを起動する際、コンテナ内のコマンドが正常に起動できればコンテナは正常に起動したものとみなされます。 docker swarm は古いコンテナを停止します。
ただし、一部のビジネスでは、コンテナー内のプロセスが正常に開始されたことを意味するわけではありません。これは、現時点では、Dockerfile の healthcheck コマンドを使用して、コマンドをカスタマイズすることができます。ビジネスの健全性を確認します。このコマンドの結果が 0 の場合にのみ、コンテナーは正常に開始されたとみなされ、swarm は古いコンテナーを停止します。 https://docs.docker.com/engin...
仅有的幸福2017-04-27 09:04:21
既にクラスターになっているので、ホットスタンバイシステムはないのでしょうか?同じコンテナの少なくとも 2 つのインスタンスを実行し、1 つはバックアップとして実行します。アップグレードする場合は、最初にそのうちの 1 つをアップグレードしてから、残りをアップグレードします。 これに似ています