解決docker掛載的目錄無法讀寫問題
使用下面的命令可以創(chuàng)建一個容器并且把本地的/home/dock/Downloads目錄掛載到容器中的/usr/Downloads中
[root@docker ~]# docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu /bin/bash
在Centos上創(chuàng)建完后,會出現(xiàn)如下問題
root@637fe9ea94f0:/usr/Downloads# ls ls: cannot open directory '.': Permission denied
解決辦法:
原因是CentOS7中的安全模塊selinux把權(quán)限禁掉了,
有以下幾種方式解決掛載的目錄沒有權(quán)限的問題:
1.在運行容器的時候,給容器加特權(quán),及加上 --privileged=true 參數(shù):
docker run -i -t -v /soft:/soft --privileged=true 637fe9ea94f0 /bin/bash
2.臨時關(guān)閉selinux:
setenforce 0
3.添加selinux規(guī)則,改變要掛載的目錄的安全性文本
補充:docker掛載文件夾后不能訪問,沒有權(quán)限
輸入docker run 后掛載的文件夾不能訪問,沒有權(quán)限
例如:
sudo nvidia-docker run -p 8090:8888 -p 8091:80 -p 8092:6666 --name=pytorch0.4 -v ~/workspace:/root/workspace -i --shm-size 31G -t dsksd/pytorch:0.4.1 /bin/bash
將主機的workspace文件夾與容器的/root/workspace文件夾相掛載,但是在主機上不能向workspace文件夾中寫入數(shù)據(jù)。因為此時文件夾的擁有者為root。
可以執(zhí)行命令:
sudo chown -R $USER 文件夾位置(/workspace)
文件夾就可以進行讀寫了。但是重啟后需要重新執(zhí)行上述命令。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
基于docker-compose構(gòu)建Mongodb副本集的示例詳解
副本集是?MongoDB?高可用性和數(shù)據(jù)安全性策略的基礎(chǔ),適用于對數(shù)據(jù)安全性和服務(wù)可用性有較高要求的場景,本文給大家介紹了如何基于docker-compose構(gòu)建Mongodb副本集,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下2024-01-01
Docker容器Container鏡像Image如何存儲詳解
本文主要介紹Docker容器(Container)和鏡像(Image)是如何進行數(shù)據(jù)存儲詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
解決docker 容器設(shè)置中文語言包出現(xiàn)的問題
這篇文章主要介紹了解決docker 容器設(shè)置中文語言包出現(xiàn)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
docker使用volume和bind mount的區(qū)別及說明
文章介紹了Docker中Volume和BindMount兩種數(shù)據(jù)持久化機制的區(qū)別,Volume由Docker管理,支持數(shù)據(jù)共享和加密,而BindMount將宿主機上的文件或目錄直接掛載到容器中,性能較好但依賴于宿主機的文件系統(tǒng)結(jié)構(gòu)2024-11-11
Docker安裝MongoDB并使用Navicat連接的操作方法
MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,MongoDB最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,這篇文章主要介紹了Docker安裝MongoDB并使用Navicat連接,需要的朋友可以參考下2022-10-10

