如何在Docker容器中重启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(适用于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容器卷

但是,当我尝试使用命令
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中的