当在Docker容器中部署MariaDB或MySQL数据库时,使用NFS作为持久卷,该容器在初始化后便立即损坏,并显示以下错误消息:
“ chown:更改'/ var / lib / mysql /'的所有权:不允许操作”
重要的是要记住,不能从NFS卷管理中进行任何更改,因为出于安全原因,它仅由遵循在NFS卷上使用“ root_squash”策略的基础结构团队进行管理。在这种情况下,只能通过docker-compose进行部署。我可以使用NFS以外的其他卷成功部署,例如本地卷,甚至在不使用永久性卷的情况下。
到目前为止,我已经尝试了几种解决该问题的策略,包括:
1-编辑MariaDB或MySQL映像,以避免在容器启动时尝试更改目录所有权。没有成功。
2-将mysql用户放置在root用户ID(0)和root用户组ID(0)中。没有成功。
3-当遇到与我相同的麻烦时,遵循以下文章中针对NFS量的PostgreSQL数据库的提示。 网址:Can I change owner of directory that is mounted on volume in IBM containers?
WordPress-DB:
图片:本地组织存储库:MariaDB-10.4-Tuned
container_name:WordPress-DB
环境:
MYSQL_DATABASE: wordpress
MYSQL_ROOT_PASSWORD: root_password
stdin_open:是
音量:
- /var/lib/docker/volumes/db:/var/lib/mysql
tty:是
端口:
- "3307:3306"
标签:
io.rancher.container.pull_image: always
WordPress-App:
图片:local-organizational-repository:0
container_name:WordPress应用程序
环境:
WORDPRESS_DB_PORT: 3307
DB_HOST: WordPress-DB
DB_NAME: wordpress
DB_USER: root
DB_PASSWORD: root_password
stdin_open:是
音量:
- /var/lib/docker/volumes/app:/var/www/html
tty:是
链接:
- WordPress-DB
标签:
io.rancher.container.pull_image: always
端口:
- "8099:80"
我还有一个数据库docker容器,运行MySQL映像,可以在其他类型的卷上正常工作,而不是在NFS上工作。