簡體   English   中英

運行Docker容器時出錯

[英]Error while running docker container

我正在使用以下命令運行docker映像。

docker run -it -p 8080:8080 -p 29418:29418 --rm \  
-e AUTH_TYPE='DEVELOPMENT_BECOME_ANY_ACCOUNT' \
-v /home/gerrit-site:/home/gerrit/site \
-v /home/nidhi/.ssh/id_rsa.pub:/root/.ssh/id_admin_rsa.pub \
-v /home/nidhi/.ssh/id_rsa:/root/.ssh/id_admin_rsa \
-e GERRIT_ADMIN_USER='admin' \
-e GERRIT_ADMIN_EMAIL='admin@fabric8.io' \
-e GERRIT_ADMIN_FULLNAME='Administrator' \
-e GERRIT_ADMIN_PWD='mysecret' \          
-e GERRIT_ADMIN_PRIVATE_KEY='/home/gerrit/ssh-keys/id_admin_rsa' \
-e GERRIT_PUBLIC_KEYS_PATH='/home/gerrit/ssh-keys' \
-v /home/nidhi/.ssh:/home/gerrit/ssh-keys \
--name gerrit admin_gerrit

我知道該命令是正確的,因為我之前曾使用過此命令,並且效果很好。 但是現在,當我運行此命令時,出現以下錯誤,

Error response from daemon: Cannot start container 2c9514c3b0d953344e66525d083c7ec3921cb9cde2185f43ec3bec2579597485: stat /home/nidhi/.ssh/id_rsa: permission denied

我檢查了ssh公鑰和私鑰的許可。 許可為700,由nidhi擁有。 請有人指出我的錯誤是什么。

當docker運行時,您容器中的uid可能與主機上的uid不匹配。 因此,對於包含具有700個權限的文件的主機卷,容器內的uid將無法讀取該卷。 我想到了三個選擇:

  1. 為了保持700個權限和相同的圖像,您需要將主機上的文件扔掉以匹配容器內的uid。
  2. 您可以使用命名卷而不是主機卷,將憑據添加到該命名卷,然后在其中設置權限以匹配將使用該卷的容器。
  3. 或者,您可以使用已重建的其他映像來更改uid以使其與主機上的uid匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM