我正在嘗試從 docker 主機對 docker 容器執行命令,但權限被拒絕。上傳新版本后,我想向 docker log 發送通知。嘗試使用--user appuser,沒有成功。
我的命令:
docker exec --workdir /app my-container printf 'NEW VERSION UPLOADED %s\n' "$(printenv VERSION)" >> /proc/1/fd/1
我得到的錯誤:
-bash: /proc/1/fd/1: Permission denied
我怎樣才能做到這一點?
謝謝
uj5u.com熱心網友回復:
實際上docker exec --workdir /app my-container printf 'NEW VERSION UPLOADED %s\n' "$(printenv VERSION)" >> /proc/1/fd/1會嘗試寫入主機的 /proc/1/fd/1 而不是容器。
另外appuser沒有寫入proc/fd的權限,所以如果Dockerfile中有USER appuser(即默認用戶為appuser),則必須使用--user root 。
所以你的命令應該是:
docker exec --workdir /app my-container --user root \
/bin/sh -c 'printf "NEW VERSION UPLOADED %s\n" "$(printenv VERSION)" >> /proc/1/fd/1'
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/496499.html
上一篇:bash:更改多個填充的名稱
