標籤:TE 參考 term style title https 一個 chown -o
提出問題:
???????? 在使用Rancher2.0.2部署一個mysql deployment時,我們會發現,如果只設定/var/lib/mysql資料目錄時,mysql容器(pod)能夠正常啟動,一旦資料目錄和配置目錄同時掛載時,mysql容器(pod)就無法啟動。
解決思路:
???????? 我們運行一個MySQL 5.6的容器,觀察正常運行時,容器內資料目錄、配置目錄、日誌目錄的所有者及許可權,並查看容器內組檔案,對比宿主機中的組檔案,應該能找到原因所在,進而可以通過在宿主機中設定正確的目錄許可權和所有者來解決該問題。
Docker宿主機中:
組檔案:??? /etc/group
root:x:0:
adm:x:4:syslog,catty
docker:x:999:catty
catty:x:1000
MySQL容器中:
功能???????????????? 目錄?????????????????????????????????????? chown -R??????? chmod
日誌目錄:? /var/log/mysql????????????????????? mysql:adm??????? 640
資料目錄:? /var/lib/mysql?????????????????????? mysql:mysql????? 640
設定檔:? /etc/mysql/mysql.conf.d??? root:root???????????? 644
組檔案:????? /etc/group
root:x:0:
adm:x:4:
mysql:x:999:
圖1、MySQL5.6容器中目錄許可權及所有者
解決辦法:
???????? 如果運行mysql容器時,需要使用自訂設定檔,可在主機上建立目錄,設定所有者為root使用者和root組,命令: chown -R root:root /etc/mysql/ ,然後運行容器時,使用-v /etc/mysql:/etc/mysql 將該目錄掛載到容器中,這樣才能正常啟動MySQL容器。
參考連結:
Set permissions on log folder #349
https://github.com/docker-library/mysql/pull/349
5.7.10-fails to mount volume `/var/log/mysql` #146
https://github.com/docker-library/mysql/issues/146#ref-commit-68a2cd4
MySQL 5.6容器使用自訂設定檔的許可權問題