我可以使用像这样的命令启动一个docker容器......
[root@localhost ~]# sudo docker run -p 3396:3306 -d mysql:5.7
但是当我装载一个卷时,它不起作用。 我得到了权限被拒绝错误,如下所示。
[root@localhost ~]# sudo docker run -p 3397:3306 -v /tmp/mysql/:/var/lib/mysql -d mysql:5.7
Digest: sha256:96edf37370df96d2a4ee1715cc5c7820a0ec6286551a927981ed50f0273d9b43
8d651cc66508605249d2c2672a18446fcc56e310cb40f46c9ea62a43e1a1837f
[root@localhost ~]# docker logs 8d651cc66508605249d2c2672a18446fcc56e310cb40f46c9ea62a43e1a1837f
chown: cannot read directory '/var/lib/mysql/': Permission denied
如何装载卷?我只面临这个服务器的这个问题。在其他服务器上,上述命令可以正常工作。
我尝试使用-u选项,但这次出现了不同的错误......
[root@localhost ~]# sudo docker run -p 3397:3306 -u 1000:50 -v /tmp/mysql/datadir3396d:/var/lib/mysql -d mysql:5.7
b0caf9c4aeaeff5aade67e21f297c02c7eb39740ad1d7327d3291d96f360f805
[root@localhost ~]# docker logs b0caf9c4aeaeff5aade67e21f297c02c7eb39740ad1d7327d3291d96f360f805
Initializing database
mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists)
2017-09-01T05:03:02.344875Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-09-01T05:03:02.346703Z 0 [ERROR] Aborting
答案 0 :(得分:0)
执行
rm -rf /tmp/mysql
然后在
下面运行sudo docker run -e MYSQL_ROOT_PASSWORD=root -p 3397:3306 -v /tmp/mysql/:/var/lib/mysql -d mysql:5.7
您需要为MYSQL_ROOT_PASSWORD
环境变量提供root密码才能使其正常工作