如何在Docker容器中重启mysql之间保存我的数据库
我已经在Docker(适用于Windows 1.12.6的Docker,而不是Docker toolbox)中使用命令运行了mysql如何在Docker容器中重启mysql之间保存我的数据库,mysql,docker,Mysql,Docker,我已经在Docker(适用于Windows 1.12.6的Docker,而不是Docker toolbox)中使用命令运行了mysql docker run --name mysqldb -v /d/databases/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql:5.7 当我第一次做的时候,一切都很好。如何将主机上带有mysql和数据库目录的docker容器装载为docker容器卷
docker run --name mysqldb -v /d/databases/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql:5.7
当我第一次做的时候,一切都很好。如何将主机上带有mysql和数据库目录的docker容器装载为docker容器卷
但是,当我尝试使用命令dockerstart mysqldb
再次启动容器时,守护进程发出了错误响应:mkdir/d:file存在
错误:无法启动容器:mysqldb
我做错了什么?有没有办法在容器和docker重启之间保存我的数据库
UPD
这是docker ps-a的
3b5b6cb91107 mysql:5.7 "docker-entrypoint.sh" 9 hours ago Up 15 seconds 0.0.0.0:3306->3306/tcp mysqldb
容器已启动,但卷/var/lib/mysql
不再装载到主机目录
"Mounts": [
{
"Source": "/d/databases/mysql",
"Destination": "/var/lib/mysql",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
这有点奇怪,因为我对数据库容器执行了相同的命令,并且每次都运行良好
docker run --name main-database -e DB_HOST=asas -e DB_PORT=testing -p 3306 -v /home/mahesh/projects/django/tmp/mysql:/var/lib/mysql main/database
请上传以下内容的输出:
docker ps -a
请检查容器是否处于退出状态
更新:
我能看到的是你的集装箱现在已经装上了
我认为你应该重新开始:
请使用docker stop container id
然后将其移除docker rm容器id
如果存在图像,则删除该图像docker rmi图像id
现在使用--rm
标志运行命令
docker run --rm --name mysqldb -v /somedir_in_your_home/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql:5.7
您是否可以执行docker ps-a
来验证mysql容器是否不再运行并检查其日志:docker logs container id
mysql容器是否不再运行并检查其日志是否没有错误。问题是其他的。这能回答你的问题吗?我把docker ps-a中的