У меня есть файл docker-compose, который создает 3 приложения Hello World и использует nginx для балансировки трафика между различными контейнерами.
Код docker-compose выглядит следующим образом:
version: '3.2'
services:
backend1:
image: rafaelmarques7/hello-node:latest
restart: always
backend2:
image: rafaelmarques7/hello-node:latest
restart: always
backend3:
image: rafaelmarques7/hello-node:latest
restart: always
loadbalancer:
image: nginx:latest
restart: always
links:
- backend1
- backend2
- backend3
ports:
- '80:80'
volumes:
- ./container-balancer/nginx.conf:/etc/nginx/nginx.conf:ro
Я бы хотел убедиться, что политика restart: always
действительно работает.
Я попробовал следующий подход:
- Сначала я запускаю свое приложение с
docker-compose up
; - Я идентифицирую идентификаторы контейнеров с помощью
docker container ps
; - Я убиваю / останавливаю один из контейнеров с помощью
docker stop ID_Container
или docker kill ID_Container
.
Я быложидая, что после 3-го шага (остановка / уничтожение контейнера. это делает его существующим с кодом 137), политика перезапуска включится и снова создаст новый контейнер.
Однако этого не происходит.Я читал, что это намеренно, так как у меня есть возможность вручную останавливать контейнеры с политикой перезапуска.
Несмотря на это, я хотел бы знать, как я могу убить контейнер таким способомчто он запускает политику перезапуска, чтобы я мог убедиться, что она работает.
Спасибо за помощь.