Маю вкрай близькі інтимні стосунки із зниканням даних з бази (mysql) в контейнері після рестарту
/usr/local/bin/docker-compose down
/usr/local/bin/docker-compose up -d
пробував
docker commit [назва контейнера]
не допомогло - після рестарту звертаюся до бази, вона взагалі відсутня, але створюється за допомогою init.sh
#!/bin/bash
set -e
MYSQL_USER=$(echo "${MYSQL_USER}")
MYSQL_ROOT_PASSWORD=$(echo "${MYSQL_ROOT_PASSWORD}")
MYSQL_PASSWORD=$(echo "${MYSQL_PASSWORD}")
MYSQL_DB=$(echo "${MYSQL_DB}")
echo "CREATE USER IF NOT EXISTS '${MYSQL_USER}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}';" | mysql -u root --password=${MYSQL_ROOT_PASSWORD}
echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DB\`;" | mysql -u root --password=${MYSQL_ROOT_PASSWORD}
echo "GRANT ALL PRIVILEGES ON ${MYSQL_DB}.* TO '${MYSQL_USER}'@'%';" | mysql -u root --password=${MYSQL_ROOT_PASSWORD}
echo "FLUSH PRIVILEGES;" | mysql -u root --password=${MYSQL_ROOT_PASSWORD}
шматок з docker-compose.yml
services:
  db:
    image: mysql:8.0.33
    command: mysqld --default-authentication-plugin=mysql_native_password
    restart: always
    env_file:
      - manual/.env
    ports:
      - 33306:3306
    volumes:
      - db:/var/lib/mysql
    networks:
      recommender:
        ipv4_address: 179.20.0.10
volumes:
  db:
    external: true
ґпт поки що не допоміг
----
Upd: пробую 
/usr/local/bin/docker-compose stop
замість 
/usr/local/bin/docker-compose down
тепер після запуску
/usr/local/bin/docker-compose up -d
якщо встигнути тут же зробити селект, то на мить можна побачити дані з минулого запуску, потім база каже що такої назви бази нема, потім що нема таблиці, а потім - що таблиця порожня.
Якась фігня.