我尝试从名为 mydb 的主机将创建的数据库挂载到 mysql 容器中,这是我尝试过的:
I try to mount a created database from host, name mydb, onto mysql container here is what I’ve tried:
我尝试从名为 mydb 的主机安装一个已创建的数据库到 mysql 容器中,这是我尝试过的:
sudo docker 运行 -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 运行 -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我启动一个新容器。
任何建议都会有所帮助,谢谢
这是已知的 issue 因为您遇到的错误 [ERROR] --initialize specified but the data directory has files in it. Aborting.
解释了此错误的含义 here。
尝试一些类似
的事情
- 如前所述添加
--ignore-db-dir=lost+found
here。
- 提供主机上数据目录的确切路径,并像这样
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
挂载到 /var/lib/mysql
的容器路径,如前所述 here。
希望对您有所帮助。
我尝试从名为 mydb 的主机安装一个已创建的数据库到 mysql 容器中,这是我尝试过的:
sudo docker 运行 -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 运行 -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我启动一个新容器。
任何建议都会有所帮助,谢谢
这是已知的 issue 因为您遇到的错误 [ERROR] --initialize specified but the data directory has files in it. Aborting.
解释了此错误的含义 here。
尝试一些类似
的事情- 如前所述添加
--ignore-db-dir=lost+found
here。 - 提供主机上数据目录的确切路径,并像这样
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
挂载到/var/lib/mysql
的容器路径,如前所述 here。
希望对您有所帮助。