[Linux]CentOS 7 docker掛載資料夾會出現 Permission Denied
@ GordonWei · Wednesday, Sep 30, 2020 · 1 minute read · Update at Sep 30, 2020

最近在研究 Linux ServiceCentOS7上跑docker, 理論上只要寫好 docker-compose 跟一些設定檔即可.

但最後在跑的時候總是會出現要掛載的 **volume**會出現 Permission Denied (即便是把檔案屬性設定為777…)

最後繞了一圈發現, 這是在有 **SELinux**的作業系統環境下會出現的(RHEL, CentOS以及Fedora)

解決方式有二

  • A方案 : 下 chcon 指令增加權限

chcon -Rt svirt_sandbox_file_t /your/conf/file

有關於 **chcon**的說明可看此份文件

  • B方案 : 直接在compose檔案中新增 :Z 讓docker自動處理

volumes:
    - ./conf/some-conf:/etc/service/service.conf:Z

直接在最後面加上:Z再去跑即可

其實在 man docker run 底下(很下面)也會看到, 只是很少會去看(誤)

Mounting External Volumes
       To mount a host directory as a container volume, specify the absolute path to the directory and the absolute path for the container directory separated by a
       colon:

              # docker run -v /var/db:/data1 -i -t fedora bash

       When using SELinux, be aware that the host has no knowledge of container SELinux policy. Therefore, in the above example, if SELinux policy is enforced, the
       /var/db directory is not writable to the container. A "Permission Denied" message will occur and an avc: message in the host's syslog.

       To work around this, at time of writing this man page, the following command needs to be run in order for the proper SELinux policy type label to be attached to
       the host directory:

              # chcon -Rt svirt_sandbox_file_t /var/db

       Now, writing to the /data1 volume in the container will be allowed and the changes will also be reflected on the host in /var/db.

Ref-Project Atomic

comments powered by Disqus

GordonWei's blog

.net .net-framworke-3.5 4g-dongle 4g-lte 518 active-directory activity ad alcatel alpine always-free amd-apu ap apache arm associate aws aws-cdk aws-certified aws-cli aws-efs aws-lex aws-nuke aws-s3 aws-saa aws-security aws-ssm aws-sso aws帳單整合 bind bind-view blog brew bridge-network build-image catalina centos centos-7 centos7 cfn-flip change-swap chatbot clean-cache clean-resources cloudfront consolidated-billing controller cups curl deeplearning delete-sns developer directory-service dlink-dcs930l dns-server docker docker-build docker-compose docker-error docker-image docker-setting-proxy domain dotnet dvac01 ec2 ec2-mount-efs ec2-ssm elk error export-ovf fail2ban fat32-to-ntfs freeradius gcloud gcp gcp-change-account git git-error github github-error google-adsens google-cloud-platform grub hh41 homebridge homekit homekit-ui http https huawei-e3372 hugo hugo-blog hugo-post instances ios ios-run-python iphone-backup ipv6-apt iso-to-usb job-bank json json-dumps keras kibana kvm lambda latin ldap ldap3 letsencrypt libvirt likecoin linux linux-dotnet linux-vnc loop lte-dongle mac mac-backup mail-server mi-home migration mongodb ms-ad multiple-account mysql mysql-error mysql-federated netapp npm npm-upgrade ns ntfs ntp-server oai on-premise openvpn openwebmail openwrt options oracle-cloud orange-pi organizations peering permission-deny pip-error pip-install port-25 printer proxy-server python python-access-ad python-ftp python2 python3 radius radius-mysql radius3.0 raspberry-pi raspberry-pi-zero request reset-password resize-img resize-sd-partition root router rpi-camera s3 s3-error s3-policy samba samba-error script scs-c01 security selinux session session-manage smtp sns solution-architect-associate ssh-server ssl ssl-error ssm sudo sysops system-manager systems-manager table-sync time-machine time_wait timezone tls totolink typeerror ubuntu ubuntu-18.04 ubuntu16.04 ubuntu20.04 unifi unifi-ac-lite uniout update-error usb usb-install virsh virt visudo vmware-player volume-lock vpc vpn vpn-server web-server wifi win-server win10 windows windows-server windows-server-2019 windows-ssh-server xiaomi yaml zimbra 廣告 永久免費 無法更新索引 無線分享器 燒光碟 自動搶 阿爾卡特
aws
gcp
iot
mac
oci

© 2021 GordonWei's Blog

Powered by Hugo with theme Dream.

Experience

2020 - Now / 趣遊科技 - 資深SRE工程師

2019 - 2020 / 104人力銀行 - DevOps 工程師

2018 - 2019 / 104人力銀行 - Net 工程師

2016 - 2018 / 全林實業股份有限公司 - 系統部協理

2015 – 2016 / 恩據優資訊工作室 – 負責人

2014 – 2015 / 安盟科技股份有限公司 – 資深IT工程師

2013 – 2014 / 上海鷺豐農業科技有限公司 – 系統工程師

2010 – 2012 / 104 人力銀行 – 維護工程師

2008 - 2009 / 典匠資訊 – MIS

Projects

  • 2020/10 - 2020/11 趣遊科技 - 產品container化
  • 2020/09 - 2020/10 趣遊科技 - 產品架構重構
  • 2020/08 - 2020/09 趣遊科技 - 規範訂製
  • 2019/09 - 2020/07 104人力銀行 - AWS Account 回收暨IaC專案
  • 2018/10 - 2018/12 104人力銀行 - DR Site 協助建置
  • 2018/03 - 2018/05 全林實業 - 工研院人臉辨識與使用者行為分析專案
  • 2018/04 - 2018/05 全林實業 - 嘉義公車站無線網路專案
  • 2017/06 - 2018/05 全林實業 - 新加坡無線網路專案
  • 2017/05 - 2018/05 全林實業 - 捷運無線網路專案
  • 2017/01 - 2017/04 全林實業 - 弋楊科技遊覽車專案
  • 2016/12 - 2017/04 全林實業 - 亞太好行網重構、建置
  • 2016/12 - 2017/02 全林實業 - 愛巴士無線網路專案
  • 2016/11 - 2017/01 全林實業 - 泰國Free AD Wifi專案
  • 2016/10 - 2016/12 全林實業 - 桃園客運無線網路專案
  • 2016/09 - 2016/12 全林實業 - 怡客咖啡廳無線網路專案
  • 2016/07 - 2017/07 全林實業 - 主要系統規劃、重構與建置
  • 2014/09 - 2015/04 安盟科技 - 機房架構規劃rebuild / CRM系統開發客製
  • 2013/07 – 2014/07 上海鷺豐農業科技 - 研發農業環境監控系統(Arduino)
  • 2011/11 – 2012/06 104人力銀行 - 協助導入虛擬化技術專案 (Citrix Xen Server、Desktop)

About

GordonWei

小弟是一位沒錢又沒閒的普通人, 只能靠自學以及不斷的實作來吸取經驗。

希望可以把自己的經驗留存下來,讓彼此的能力更進一步!!

認證