我创建了一个 NFS 卷
docker volume create --driver local --opt type=nfs --opt o=addr=preisschild-server-2.lan,rw --opt device=:/mnt/tank/MariaDB MariaDBData
这似乎有效,但是当我在 docker 容器上使用该卷时:
docker run --name MariaDB -v MariaDBData:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=topsecretpassword --network bridged -p 3306:3306 -d mariadb:latest
我得到/usr/bin/docker-current: Error response from daemon: SELinux relabeling of /var/lib/docker/volumes/MariaDBDataNFS/_data is not allowed: "operation not supported"
作为输出。我已经尝试过设置许可,但这没有用。
其他信息:操作系统:CentOS7 Docker 版本:1.13.1
答案1
尝试
docker run --name MariaDB -v MariaDBData:/var/lib/mysql:z -e MYSQL_ROOT_PASSWORD=topsecretpassword --network bridged -p 3306:3306 -d mariadb:latest
或者
docker run --name MariaDB -v MariaDBData:/var/lib/mysql:Z -e MYSQL_ROOT_PASSWORD=topsecretpassword --network bridged -p 3306:3306 -d mariadb:latest
或者
运行命令之前禁用 Selinux
答案2
当您使用时,docker-current
我假设您使用的是 RHEL(7) 并且 SELinux 已配置(强制或许可)。
我想你已经被这个错误击中了: https://bugzilla.redhat.com/show_bug.cgi?id=1492113#c0
在链接评论的底部,您可以找到解决方法,我也很高兴将其粘贴在这里。使用nocopy
选项代替z
或Z
:
docker run --name MariaDB -v MariaDBData:/var/lib/mysql:nocopy -e MYSQL_ROOT_PASSWORD=topsecretpassword --network bridged -p 3306:3306 -d mariadb:latest
请参阅这篇精彩的 github 评论,了解 nocopy 的含义。 https://github.com/docker/docker.github.io/issues/2992#issuecomment-299596714