Я пытаюсь смонтировать созданную базу данных с хоста, имя mydb, в контейнер mysql, вот что я пробовал:
sudo docker run -v mysql-data:/var/lib/mysql/mydb/ --name mysql_web -e MYSQL_ROOT_PASSWORD=12345 -p 3306:3306 -d mysql:5.7
root@ip-172-31-16-134:/var/lib/mysql# sudo docker run -v mysql-data:/var/lib/mysql/mydb/ --name mysql_web -e MYSQL_ROOT_PASSWORD=12345 -p 3306:3306 -d mysql:5.7
3c0a8eb588c0dd0d0b7b72a727912744f44e744e700de7efc64a0c4c1f651685
root@ip-172-31-16-134:/var/lib/mysql# docker exec -it mysql_web bash
Error response from daemon: Container 3c0a8eb588c0dd0d0b7b72a727912744f44e744e700de7efc64a0c4c1f651685 is not running
но это работает, когда я меняю место монтирования…
sudo docker run -v mysql-data:/var/lib/mydb/ --name mysql_web -e MYSQL_ROOT_PASSWORD=12345 -p 3306:3306 -d mysql:5.7
root@ip-172-31-16-134:/var/lib/mysql# sudo docker run -v mysql-data:/var/lib/mydb/ --name mysql_web -e MYSQL_ROOT_PASSWORD=12345 -p 3306:3306 -d mysql:5.7
06233eeb864c32ff16d6542e632a4da3ff6dfbd4a30fcc9aac8086dfc1245948
root@ip-172-31-16-134:/var/lib/mysql# docker exec -it mysql_web bash
root@06233eeb864c:/# cd /var/lib/mydb
root@06233eeb864c:/var/lib/mydb# exit
exit
Кажется, он не может монтироваться в определенную папку, и я не знаю почему, я просто хочу, чтобы обе базы данных, одна из хоста, а другая из контейнера, синхронизировались, а не загружали dump.sql каждый раз, когда я запускаю новый контейнер.
любое предложение поможет, спасибо
Это известно как проблема из-за полученной вами ошибки [ERROR] --initialize specified but the data directory has files in it. Aborting.
Что означает эта ошибка, объясняется здесь.
Попробуйте несколько вещей, таких как
--ignore-db-dir=lost+found
как уже упоминалось здесь./var/lib/mysql
вот так docker run -v /path/to/mysql-data:/var/lib/mysql --name mysql_web -e MYSQL_ROOT_PASSWORD=12345 -p 3306:3306 -d mysql:5.7
как уже упоминалось здесь.Надеюсь это поможет.