我在Docker(Docker for Windows 1.12.6,而不是docker工具箱)中使用命令
运行mysqldocker 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 start mysqldb
启动容器agan时,我遇到错误来自守护程序的错误响应:mkdir / d:file exists
错误:无法启动容器: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"
}
],
答案 0 :(得分:1)
这有点奇怪,因为我用我的数据库容器执行了相同的命令,并且每次都正常工作。
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 container-id
如果存在,则删除图像docker rmi image-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