-
docker-compose ps -q <service_name>
будет отображаться идентификатор контейнера независимо от того, запущен он или нет, до тех пор, пока он был создан. -
docker ps
показывает только те, которые действительно запущены.
Давайте объединим эти две команды:
if [ -z `docker ps -q --no-trunc | grep $(docker-compose ps -q <service_name>)` ]; then echo "No, it's not running."else echo "Yes, it's running."fi
docker ps
показывает короткую версию идентификаторов по умолчанию, поэтому нам нужно указать --no-trunc
флаг.
ОБНОВЛЕНИЕ: Он выдавал предупреждение "использование grep", если служба не была запущена. Благодаря @Dzhuneyt, вот обновленный ответ.
if [ -z `docker-compose ps -q <service_name>` ] || [ -z `docker ps -q --no-trunc | grep $(docker-compose ps -q <service_name>)` ]; then echo "No, it's not running."else echo "Yes, it's running."fi