Ка запускать контейнеры Docker по очерёдности?
depends_on инструкция в сервисе указывает, от каких других сервисов зависит этот – соотв. запустится только после них.

version: "3.7"
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres
Вопрос очень сложный. Скорее всего, если Вы хотите зависимость по порядку запуска - Вы что-то делаете не так. 
Принципиально вариантов три
1. использовать костыли вроде wait-for-it.sh - которые будут держать контейнер в состоянии запущен, но сервис внутри не стартанул, пока зависимость не стартанет.
2. Вообще плюнуть на зависимости. Ну, рестартуется зависимый сервис - раз на пятый, когда зависимость стартанет, запустится. Лишь бы правильно перезапуск был сделан. Но это может быть неприемлемо, если в докере что-то тяжёлое, вроде джава машины, которая долго прогревается.
3. Использоваться внешние решения. Начиная от "давайте не будет использовать restart: always в докере и засунем docker-compose up в systemd юнит" и кончая скриптами или оркестраторами.