运行docker容器时出错

我使用以下命令运行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的权限和相同的图像,你需要chown主机上的文件来匹配容器内的uid。
  2. 您可以使用命名卷代替主卷,将凭据添加到该命名卷,然后在其中设置权限以匹配将使用该卷的容器。
  3. 或者你可以使用一个不同的图像,重build更改uid以匹配你自己的主机。
Interesting Posts