运行 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
public 和私钥的权限。权限为 700,归 nidhi 所有。请有人指出我的错误是什么。
当 docker 运行时,容器中的 uid 可能与主机上的 uid 不匹配。因此,对于包含具有 700 权限的文件的主机卷,容器内的 uid 将无法读取该文件。想到三个选项:
- 要保持 700 权限和相同图像,您需要对主机上的文件进行 chown 以匹配容器内的 uid。
- 您可以使用命名卷而不是主机卷,将您的凭据添加到该命名卷,然后在其中设置权限以匹配您将在其中使用该卷的容器。
- 或者您可以使用已重建的不同图像来更改 uid 以匹配您在主机上的图像。
我正在使用以下命令运行创建一个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
public 和私钥的权限。权限为 700,归 nidhi 所有。请有人指出我的错误是什么。
当 docker 运行时,容器中的 uid 可能与主机上的 uid 不匹配。因此,对于包含具有 700 权限的文件的主机卷,容器内的 uid 将无法读取该文件。想到三个选项:
- 要保持 700 权限和相同图像,您需要对主机上的文件进行 chown 以匹配容器内的 uid。
- 您可以使用命名卷而不是主机卷,将您的凭据添加到该命名卷,然后在其中设置权限以匹配您将在其中使用该卷的容器。
- 或者您可以使用已重建的不同图像来更改 uid 以匹配您在主机上的图像。