You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Docker镜像报错:无法找到组ID 1000对应的名称

问题解决步骤

1. 修复容器用户/组ID不匹配的错误

你遇到的groups: cannot find name for group ID 1000和I have no name!错误,是因为通过-u "$(id -u):$(id -g)"指定了主机的UID/GID,但容器内部没有对应的用户和组条目。提供两种解决方式:

方式一:修改Dockerfile创建匹配用户

在你的Dockerfile中添加以下内容,构建时可通过参数传递主机的UID/GID:

ARG USER_ID=1000
ARG GROUP_ID=1000

RUN groupadd -g ${GROUP_ID} yocto-user && \
    useradd -u ${USER_ID} -g ${GROUP_ID} -m yocto-user && \
    echo "yocto-user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

USER yocto-user
WORKDIR /home/yocto-user

重新构建镜像:

docker build --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g) -t ubuntu-yocto-kirkstone .

方式二:运行容器时临时创建用户

无需修改Dockerfile,启动容器时直接执行命令创建用户:

docker run -it --name my_container \
  -v /home/chandra/.ssh:/home/yocto-user/.ssh \
  -v /home/Yocto_Dev:/home/yocto-user/Yocto_Dev \
  ubuntu-yocto-kirkstone \
  /bin/bash -c "groupadd -g $(id -g) yocto-user && useradd -u $(id -u) -g $(id -g) -m yocto-user && su - yocto-user"

2. 正确挂载SSH密钥到容器

你原命令中的挂载路径错误,需将主机的~/.ssh目录挂载到容器内对应用户的~/.ssh目录:

  • 若用自定义用户(推荐):-v /home/chandra/.ssh:/home/yocto-user/.ssh
  • 若用root用户:-v /home/chandra/.ssh:/root/.ssh

进入容器后设置密钥权限:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_rsa

3. 在容器内克隆Git仓库

进入容器后直接执行克隆命令:

git clone <你的Git仓库地址> /home/yocto-user/Yocto_Dev

如果主机已克隆过仓库,也可通过挂载主机的/home/Yocto_Dev目录到容器,直接使用已有内容。

修正后的完整启动命令示例

docker run -it --name my_container \
  -v /home/chandra/.ssh:/home/yocto-user/.ssh \
  -v /home/Yocto_Dev:/home/yocto-user/Yocto_Dev \
  -u "$(id -u):$(id -g)" \
  ubuntu-yocto-kirkstone \
  /bin/bash -c "groupadd -g $(id -g) yocto-user 2>/dev/null; useradd -u $(id -u) -g $(id -g) -m yocto-user 2>/dev/null; chmod 700 /home/yocto-user/.ssh; chmod 600 /home/yocto-user/.ssh/id_rsa; su - yocto-user"

内容的提问来源于stack exchange,提问作者cherry411

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 18:50:09