關于docker創建文件失敗,常常會出現創建文件時沒有權限的情況。這時候我們需要查看當前用戶的權限,是否具有文件寫入的權限。
$ docker run -it --rm -v $(pwd):/app -w /app ubuntu /bin/bash
上面的命令可以進入ubuntu鏡像并掛載當前目錄到/app,并設置工作目錄為/app。然后執行以下命令查看當前用戶的uid和gid。
$ id
返回用戶的信息,例如:
uid=1000(kayla) gid=1000(kayla) groups=1000(kayla),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lxd),999(docker)
在掛載目錄時需要設置正確的uid和gid,讓容器內的用戶對掛載的目錄具有足夠的權限。
$ docker run -it --rm -v $(pwd):/app -w /app -u $(id -u):$(id -g) ubuntu /bin/bash
上述命令中使用-u選項來設置uid和gid,$(id -u)和$(id -g)分別獲取當前用戶的uid和gid。
如果還是不能創建文件,可以嘗試使用chmod命令更改目錄權限。
$ chmod 777 /dir/to/my/folder
如果還是不能創建文件,請檢查鏡像中是否缺少相關的庫文件或寫入文件的目錄是否具有足夠的權限。