装入mysql容器的卷

我可以使用像这样的命令启动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 

执行

 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 

您需要提供带有root密码的MYSQL_ROOT_PASSWORD环境variables才能正常工作